如何在pig中读取以分号分隔的csv文件?数据也可以包含分号。
e、 输入行:“名称”年龄“;”地址“;”简历包含特殊字符,如;,$#$@^“;”“评级”
输出:这些字段中的每一个都应该加载到列中,特别是“resume”列应该有“resume contains special char like;,$#$@^”
注意:我试过pigstorage,cvsloader,但仍然不能使它工作,因为分隔符也可能在数据中。
如何在pig中读取以分号分隔的csv文件?数据也可以包含分号。
e、 输入行:“名称”年龄“;”地址“;”简历包含特殊字符,如;,$#$@^“;”“评级”
输出:这些字段中的每一个都应该加载到列中,特别是“resume”列应该有“resume contains special char like;,$#$@^”
注意:我试过pigstorage,cvsloader,但仍然不能使它工作,因为分隔符也可能在数据中。
3条答案
按热度按时间fxnxkyjh1#
试试这个办法。
pgky5nke2#
你可以用
piggybank.jar
阅读这样的文件。首先需要在pig脚本中注册piggybank.jar,然后可以在脚本中使用函数。下面是代码片段(我还没有测试过这个,但我相信它会成功的)
有关更多详细信息,请参阅此和此
sdnqo3pr3#
如果输入数据中也存在分隔符,那么我的建议是
Regex
而不是任何加载技术(PigStorage,CSVStorage
). 这将为您的输入提供更灵活的控制。我同意很多人不喜欢Regex
由于自然界的复杂性,使用正则表达式可以很容易地解决这类问题。示例
输入
Pig手稿:
输出:
注:
这是一个非常通用的解决方案,无论输入中有多少特殊字符,它都能正常工作
column(resume)
. 在这个脚本中,我只打印了resume column
,如果您需要其他列,则包含在relation C
.