Pentaho Kettle-按字段值筛选重复的行

Pentaho Kettle-按字段值筛选重复的行,pentaho,kettle,Pentaho,Kettle,我有一个来自csv文件的单一输入流。此流来自一个用户表,其中可以使用不同的ID复制用户 我需要清理这条小溪。[姓名+姓氏]的组合总是唯一的,但我需要在选择前进行比较,因为我想保留最近的信息,并根据其他值的比较创建一个新字段 我有一个用于选择行的时间戳 这是输入流的一个示例: 这是我想要的输出的一个例子: 对于这项任务,什么工具是最好的 提前谢谢 这需要在pentaho釜中进行一些分类和分组 表格中的CSV文件输入(确保TimeUpdate是日期格式) 排序步骤:按名称、姓氏、姓氏2、时间更新排

我有一个来自csv文件的单一输入流。此流来自一个用户表,其中可以使用不同的ID复制用户

我需要清理这条小溪。[姓名+姓氏]的组合总是唯一的,但我需要在选择前进行比较,因为我想保留最近的信息,并根据其他值的比较创建一个新字段

我有一个用于选择行的时间戳

这是输入流的一个示例:

这是我想要的输出的一个例子: 对于这项任务,什么工具是最好的


提前谢谢

这需要在pentaho釜中进行一些分类和分组

  • 表格中的CSV文件输入(确保TimeUpdate是日期格式)
  • 排序步骤:按名称、姓氏、姓氏2、时间更新排序(Asc:No)
  • 分步分组:按姓名、姓氏、姓氏2分组;聚合:id(第一个值)、TimeUpdated(第一个值)、Status(连接由(值:+)分隔的字符串)

  • 这应该与pentaho釜中的一些分类和分组一起工作

  • 表格中的CSV文件输入(确保TimeUpdate是日期格式)
  • 排序步骤:按名称、姓氏、姓氏2、时间更新排序(Asc:No)
  • 按步骤分组:按名称、姓氏、姓氏2分组;聚合:id(第一个值)、TimeUpdated(第一个值)、Status(连接由(值:+)分隔的字符串)

  • 您可以执行以下操作:

  • 使用名为“排序行”的步骤,按名称、Surename1、Surename2和时间更新对行进行排序
  • 执行以下任一操作:
    • 一个称为唯一行的步骤,在该步骤中,要比较的字段将说明您希望使其唯一的字段
    • 一个名为“分组依据”的步骤,其中组成组的字段将说明要使其唯一的字段,聚合将说明所有其他字段。每个聚合旁边的“类型”下拉列表应根据步骤1中对数据的排序方式进行设置:
      • 如果您确定要保留的最重要的行(不重复)是具有最新数据的行,并且您按降序排序了TimeUpdate,则为所有聚合选择Type=“Last value”或“Last non--null value”

  • 另一件事你应该注意,但这是更一般的-有一个步骤叫做内存分组by,它为你节省了分组前昂贵的排序计算时间,但只有当你能确保通过它的数据不会溢出内存,即小数据集时,这个步骤才是好的。

    你可以做以下操作翼:

  • 使用名为“排序行”的步骤,按名称、Surename1、Surename2和时间更新对行进行排序
  • 执行以下任一操作:
    • 一个称为唯一行的步骤,在该步骤中,要比较的字段将说明您希望使其唯一的字段
    • 一个名为“分组依据”的步骤,其中组成组的字段将说明要使其唯一的字段,聚合将说明所有其他字段。每个聚合旁边的“类型”下拉列表应根据步骤1中对数据的排序方式进行设置:
      • 如果您确定要保留的最重要的行(不重复)是具有最新数据的行,并且您按降序排序了TimeUpdate,则为所有聚合选择Type=“Last value”或“Last non--null value”
  • 另一件事你应该注意,但这是更一般的-有一个叫做内存分组by的步骤,它为你节省了分组前排序的昂贵计算时间,但只有当你能确保通过它的数据不会溢出内存,即小数据集时,这个步骤才是好的