为什么我的csv数据在apache pig中dump命令后不显示?

8yoxcaq7  于 2021-06-24  发布在  Pig
关注(0)|答案(0)|浏览(159)

我是新手,有以下问题。我试图加载一个小的csv文件(10行22列的数据),在Pig使用 CSVLoader ,并通过dump命令显示其中4列的值。
我使用的代码如下:

grunt>A = LOAD ’/vagrant/test.csv’ USING CSVLoader(’,’) AS (Id:int, PostTypeId:int, AcceptedAnswerId:int, ParentId:int, CreationDate:datetime, DeletionDate:datetime, Score:int, ViewCount:int, Body:chararray, OwnerUserId:int, OwnerDisplayName:chararray, LastEditorUserId:int, LastEditorDisplayName: chararray, LastEditDate:datetime, LastActivityDate:datetime, Title:chararray, Tags:chararray, AnswerCount:int, CommentCount:int, FavoriteCount:int, ClosedDate:chararray);

grunt>B = FOREACH A GENERATE Id,PostTypeId, OwnerUserId,Title;
grunt>DUMP B;

我要把前两件东西退了( Id 以及 PostTypeId ),但其他两项为空。例如,一行可以显示为“(2003505,1,,)”,而我的转储输出中有多行只显示“(,,,),即完全为空。所以尽管在转储输出中只需要10行,但实际上我得到了117行,其中大部分都是空值!下面的代码段。
转储函数的输出代码示例:

我检查了模式和输入数据,没有发现字符类型的任何不匹配。
问题1。在输出行中,我得到了一些数据,但不是全部(“(2003505,1,,)”)”),为什么我会丢失数据?问题2。为什么有多行只显示“(,,)”?
谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题