如何从CSV文件中仅提取和路由指定的列并删除所有其他列

shr*_*ads 1 regex apache etl apache-nifi

我想从CSV文件中提取一些字段及其值,然后删除/删除文件中的所有其他字段。请帮忙。我认为我们可以使用RoutText处理器。请告诉我如何编写仅对指定字段进行路由的正则表达式,并删除所有其他内容。谢谢

示例-从附带的快照中,我只想沿着机智命中值(每个记录/行)路由“名字,姓氏和兄弟姐妹”字段。删除其余的列,例如“州,年龄,住所编号,国家/地区,性别”。

请告诉我什么是正确的处理器,以及为了实现此目的而使用的配置属性。谢谢

逗号分隔的CSV文件快照

附加快照以供参考。

mat*_*tyb 5

您可以为此使用ConvertRecord。向CSVReader提供完整的架构,并为CSVRecordSetWriter仅向架构提供所需的字段。如果您不知道输入模式(但是您知道它至少包含要发送的字段),则可以让阅读器使用“来自标题的字符串字段”,这将创建一个输入模式(使用标题行),然后假设所有字段都是字符串。但是,输出模式将具有选定字段及其类型,并且ConvertRecord将处理其他字段的“删除”,以及每个选定字段从String到所需数据类型的任何转换。