2014-12-19 47 views
0

我有一個來自csv文件的單個輸入流。此流來自用戶表,用戶可能會複製不同的ID。水壺 - 按字段值過濾重複的行

我需要清理這個流。 [名字+姓氏]的組合總是獨一無二的,但我需要在選擇之前進行比較,因爲我想保留最近的信息,並根據其他值的比較創建新字段。

我有一個時間戳將用於選擇行。

這是輸入流的一個例子: enter image description here

這是輸出我想要的例子: enter image description here 什麼工具是最好的完成這個任務?

在此先感謝。

回答

2

這應該在pentaho水壺中進行一些排序和分組。

  1. 的CSV文件輸入與表(確保TimeUpdated是一個日期格式)
  2. 排序步:按名稱排序,姓,Surname2,TimeUpdated(ASC:否)
  3. 集團通過 - 步驟:按姓名,姓氏,姓氏2;總結:ID(第一個值),TimeUpdated(第一個值),狀態(置字符串分隔的(值:+)
+0

排序後,您可以使用獨特的原料步驟,以避免重複.. – 2014-12-19 10:15:55

+0

謝謝你,它工作完美。 – beerLantern 2014-12-26 11:08:04

2

您可以執行以下操作:按名稱,Surename1

  1. 排序行,Surename2和TimeUpdate使用稱爲步驟排序行;
  2. 執行以下操作之一:
    • 稱爲A步驟唯一行,其中上進行比較的字段將陳述你願意做出獨特的領域;
    • 通過,其中組成組的字段將陳述你想獨特的這些領域被稱爲A組的步驟,以及聚集將陳述的所有其他領域。旁邊的每個聚集體的類型下拉列表應根據您在步驟1中整理你的數據進行設置:
      • 如果您認爲最重要的行保持,出重複的,都是用的那些最近的數據,然後按降序對TimeUpdate進行排序,然後爲所有聚合選擇類型 =「最後一個值」或「最後一個非空值」;

你應該注意的另一件事情,但是這是更普遍的 - 有一個由稱爲記憶組步驟,這樣可以節省分組之前排序昂貴的計算時間,但是這一步是好的只有當你能確保通過它的數據不會溢出內存時,即小數據集。