我有一個包含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"} );