首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将csv文件拆分为一个列- Apache的值

将csv文件拆分为一个列- Apache的值
EN

Stack Overflow用户
提问于 2018-12-12 22:41:34
回答 1查看 2.5K关注 0票数 2

我有一个csv文件,它有以下结构。

代码语言:javascript
运行
复制
ERP,J,JACKSON,8388 SOUTH CALIFORNIA ST.,TUCSON,AZ,85708,267-3352,,ALLENTON,MI,48002,810,710-0470,369-98-6555,462-11-4610,1953-05-00,F,
MARKETING,J,JACKSON,8388 SOUTH CALIFORNIA ST.,TUCSON,AZ,85708,267-3352,,ALLENTON,MI,48002,810,710-0470,369-98-6555,462-11-4610,1953-05-00,F,

正如您所看到的,这里没有标题,但是对于您的信息,第一部分(第一列)表示获取数据的扇区。

我要做的是根据第一列值,例如(营销或ERP),我必须将所有这些行发送到不同的输出目录。

例如,有ERP到/output/ERP的所有行/有营销到/output/销售/的所有行

我有一个如何做它的想法,但我的问题是关于我正在使用的RouteOnAttribute处理器,我不知道如何引用第一列,并指出什么是价值(ERP或市场营销)以后发送到正确的输出目录。

这是我的模式。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-12 22:59:24

在这种情况下使用PartitionRecord处理器。

record reader/writer controller services配置处理器。即使没有标头,也可以在avro模式中使用col1、col2...etc。

  • 添加定义处理器以使用该字段对流文件进行分区的新属性。

现在分区记录处理器用值添加partition field attribute,通过使用这个属性值,我们可以动态地将dynamically store files添加到受尊重的目录中。

流:

代码语言:javascript
运行
复制
1.GetFile
2.PartitionRecord
3.PutFile //configure directory as /output/${<keep_partition_field_name_here>}

请参考链接配置分区记录处理器的使用。

(或)

旧方法:

使用RouteText处理器代替SplitText + RouteOnAttribute处理器

将RouteText处理器配置为

使用ERP/MARKETING连接连接到PutFile处理器,并使用RouteText.Route属性值动态地将文件保存到目录中。

流:

代码语言:javascript
运行
复制
1.GetFile
2.RouteText
3.PutFile //configure directory as /output/${RouteText.Route}/

还可以使用组正则表达式属性值创建分区。

Note

使用PartitionRecord处理器将比RouteText处理器更有效地处理

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53752491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档