使用Pig操作CSV文件

时间:2013-08-20 23:49:45

标签: csv apache-pig

我尝试使用以下命令使用Pig加载CSV文件:

A = LOAD '/USER/XYZ/PIG/FILENAME.ASC' USING PIGSTORAGE(',');

虽然已加载但没有出错,cat a给了我一个Directory does not exist error。我是猪的新手,知道我在那里做了一些非常错的事。如何检查它是否确实已加载?或者加载用词不当,文件只存在于HDFS上?

接下来,我想从CSV文件中删除几列数据并将其存储在另一个文件中。我怎么能去做呢?

我不一定需要脚本/代码,但如果你能指出我能完成我想做的正确功能,那就太棒了。谢谢!

1 个答案:

答案 0 :(得分:2)

要查看A的当前内容,您可以使用DUMP A;。要查看架构/关系,您可以使用DESCRIBE A;

了解A的架构后,您可以突出显示所需的字段。例如。 B = FOREACH A GENERATE $0 AS foo, $4 AS bar ;只选择第1列和第5列,分别命名为foo和bar。

可以使用STORE B INTO 'myoutdir' USING PigStorage('|') ;进行存储,其中您选择作为分隔符的字符可以是任何单个字符。

因此,例如,这是我在测试时脚本的外观:

A = LOAD '/USER/XYZ/PIG/FILENAME.ASC' USING PIGSTORAGE(',') ;
DESCRIBE A ;
DUMP A ;

B = FOREACH A GENERATE $0, $4;
DESCRIBE B ;
DUMP B ;

STORE B INTO 'myoutdir' USING PigStorage('|') ;