我有一个包含2列的表,DATETIME和MESSAGE。消息列为60个字符。
该表具有约300万行,其中包含许多重复的行,因为这是许多文件与某些相同数据的串联。我试图尽快消除重复的行,在JMP 12.2.0中运行良好。
在JMP 12.2.0中,摘要大约需要8秒钟。
在JMP 14.3.0中,摘要花费了未知的时间,因为我杀死了30分钟以上的过程。
dt2 = dt << Summary( Group( :DATETIME, :MESSAGE ), Invisible, Link to original Data Table( 0 ), Table Name( "MessageTable" ) );
我发现了一种解决方法,大约需要16秒,这要好得多。
似乎“摘要”仅适用于一组。当使用多个组时,性能会严重下降。
因此,我将该表分为1列,然后在摘要后将这些列解析回去。
很难看,但是可以。
dt << New Column( "KEY", Character, Formula( Char( :DATETIME ) || "@" || :MESSAGE ) );
dt2 = dt << Summary( Group( :KEY ), Invisible, Link to original Data Table( 0 ), TableName( "MessageTable" ) );
dt2 << New Column( "DateTime", Numeric, Format( "y/m/d h:m:s" ), Formula( Num( Words( :KEY, "@" )[1] ) ) );
dt2 << New Column( "Message", Character, Formula( Words( :KEY, "@" )[2] ) );
dt2:DateTime << Delete Formula;
dt2:Message << Delete Formula;
dt2 << Delete Columns( {"KEY", "N Rows"} );