0

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

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

虽然它加载并没有给出错误,但cat a给了我一个Directory does not exist error. 我是 Pig 的新手,知道我在那里做错了什么。如何检查它是否确实已加载?还是加载了一个用词不当,文件只存在于 HDFS 上?

接下来,我想从 CSV 文件中剪切几列数据并将其存储在另一个文件中。我该怎么办?

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

4

1 回答 1

3

要查看当前内容,A您可以使用. 要查看架构/关系,您可以使用. DUMPA;DESCRIBEA;

一旦你知道了你的模式,A你就可以投影出你想要的字段。EGB = FOREACH A GENERATE $0 AS foo, $4 AS bar ;只选择第 1 列和第 5 列,分别命名为 foo 和 bar。

存储可以在您选择作为分隔符的字符可以是任何单个字符的地方完成。 STOREB 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('|') ;
于 2013-08-21T00:07:35.947 回答