我在hdfs中有一个文件
44,英国,{“names”:{“name1”:“john”,“name2”:“marry”,“name3”:“stuart”},“fruits”:{“fruit1”:“apple”,“fruit2”:“orange”},2016年7月31日
91,印度,{“names”:{“name1”:“ram”,“name2”:“sam”},“fruits”:{}},2016年7月31日
并希望使用pig loader将其存储到scv文件中,如下所示:
44,英国,姓名,姓名1,约翰,2016年7月31日
44岁,英国,姓名,姓名2,已婚,2016年7月31日
..
44,英国,水果,水果1,苹果,2016年7月31日
..
91,印度,姓名,姓名1,拉姆,2016年7月31日
..
91,印度,空,空,ram,31-07-2016
Pig的脚本应该是什么?
1条答案
按热度按时间y3bcpkx11#
因为您的记录不是一个正确的json字符串,所以任何json存储程序/加载程序都帮不了您。编写自定义项框架将是一种更简单的方法。
更新方法1:-
如果您正在将输入转换为制表符分隔的文件,下面的udf和pig脚本将起作用。
自定义项:-
Pig脚本:-
旧方法:-
下面我要提到的方式,我将在我的自定义项阅读你的记录,如果它是逗号分隔。
正如我在下面的评论中提到的,试着用自定义项中的拆分来分隔字段。我还没有测试,但以下是我可以尝试在我的自定义项:-
(请注意,我不确定这是最好的选择-您可能需要进一步改进。)