如何分离csv文件数据并将其写入不同的文件?

问题描述 投票:0回答:1

我的输入是一个包含以下数据的 csv 文件

ID、姓名、联系方式、公司名称、部门 101,天使,0000000000,XYZ组织,HR 102,梅琳达,0000000000,XYZ 组织,帐户 103,杰克,0000000000,XYZ组织,HR 104、罗恩,0000000000,XYZ组织,HR 105,玛丽,0000000000,XYZ 组织,帐户 106,伊娃,0000000000,XYZ 组织,销售 107,内特,0000000000,XYZ 组织,销售

根据部门名称,我想将记录写入不同的文件,如下所示

人力资源档案 101,天使,0000000000,XYZ组织,HR 103,杰克,0000000000,XYZ组织,HR 104,罗恩,0000000000,XYZ 组织,HR

账户档案 102,梅琳达,0000000000,XYZ 组织,帐户 105,玛丽,0000000000,XYZ 组织,帐户

如何根据部门名称将数据隔离并写入不同的文件?

integration dataweave mulesoft mule4 anypoint-studio
1个回答
0
投票

使用 groupBy() 按部门分组,然后 pluck() 转换为易于在 foreach 范围内迭代的数组,您可以在其中写入每个文件。

%dw 2.0
output application/java
---
payload groupBy($.Department) pluck {department:$$, records:$}

输出(为清楚起见,为 JSON,应为 Java)

[
  {
    "department": "HR ",
    "records": [
      {
        "ID": "101",
        "Name": "Angel",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "HR "
      },
      {
        "ID": "104",
        "Name": "Ron",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "HR "
      }
    ]
  },
  {
    "department": "Accounts ",
    "records": [
      {
        "ID": "102",
        "Name": "Melinda",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "Accounts "
      },
      {
        "ID": "105",
        "Name": "Marie",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "Accounts "
      }
    ]
  },
  {
    "department": "HR",
    "records": [
      {
        "ID": "103",
        "Name": "Jack",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "HR"
      }
    ]
  },
  {
    "department": "Sales",
    "records": [
      {
        "ID": "106",
        "Name": "Eva",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "Sales"
      },
      {
        "ID": "107",
        "Name": "Nate",
        "ContactNo": "0000000000",
        "CompName": "XYZ Org",
        "Department": "Sales"
      }
    ]
  }
]
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.