Apache pig 在PIG中加载CSV文件

Apache pig 在PIG中加载CSV文件,apache-pig,Apache Pig,在PIG中,当我们使用load语句加载CSV文件而不提及schema&使用默认PIGSTORAGE(\t)时,会发生什么?加载工作正常吗?我们可以转储数据吗?否则它会抛出错误,因为文件有“”,并且pig存储是“/t”?请注意当您加载csv文件时,没有使用PigStorage('\t')定义架构,因为输入文件的每一行中都没有选项卡,所以整行将被视为一个元组。您将无法访问行中的单个单词 例如: 输入文件: john,smith,nyu,NY jim,young,osu,OH robert,cerne

在PIG中,当我们使用load语句加载CSV文件而不提及schema&使用默认PIGSTORAGE(\t)时,会发生什么?加载工作正常吗?我们可以转储数据吗?否则它会抛出错误,因为文件有“”,并且pig存储是“/t”?请注意

当您加载csv文件时,没有使用PigStorage('\t')定义架构,因为输入文件的每一行中都没有选项卡,所以整行将被视为一个元组。您将无法访问行中的单个单词

例如: 输入文件:

john,smith,nyu,NY
jim,young,osu,OH
robert,cernera,mu,NJ

a = LOAD 'input' USING PigStorage('\t');
dump a;

OUTPUT:
(john,smith,nyu,NY)
(jim,young,osu,OH)
(robert,cernera,mu,NJ)

b = foreach a generate $0, $1, $2;
dump b;
(john,smith,nyu,NY,,)
(jim,young,osu,OH,,)
(robert,cernera,mu,NJ,,)
理想情况下,b应该是:

(john,smith,nyu)
(jim,young,osu)
(robert,cernera,mu)
如果分隔符是逗号。但是,由于分隔符是一个制表符,而输入记录中不存在制表符,因此整行被视为一个字段。如果字段为空,Pig不会抱怨——当字段为空时,它不会输出任何内容。因此,在转储
b
时,只能看到逗号


希望这是有用的。

当您加载csv文件而不使用PigStorage('\t')定义架构时,由于输入文件的每一行中都没有选项卡,因此整行将被视为一个元组。您将无法访问行中的单个单词

例如: 输入文件:

john,smith,nyu,NY
jim,young,osu,OH
robert,cernera,mu,NJ

a = LOAD 'input' USING PigStorage('\t');
dump a;

OUTPUT:
(john,smith,nyu,NY)
(jim,young,osu,OH)
(robert,cernera,mu,NJ)

b = foreach a generate $0, $1, $2;
dump b;
(john,smith,nyu,NY,,)
(jim,young,osu,OH,,)
(robert,cernera,mu,NJ,,)
理想情况下,b应该是:

(john,smith,nyu)
(jim,young,osu)
(robert,cernera,mu)
如果分隔符是逗号。但是,由于分隔符是一个制表符,而输入记录中不存在制表符,因此整行被视为一个字段。如果字段为空,Pig不会抱怨——当字段为空时,它不会输出任何内容。因此,在转储
b
时,只能看到逗号

希望这是有用的。

1)给我们看看你的加载语句,2)你为什么不自己试一试?1)给我们看看你的加载语句,2)你为什么不自己试一试?