如何在pig中加载带有制表符和逗号的数据集

guicsvcw  于 2021-07-15  发布在  Pig
关注(0)|答案(1)|浏览(458)

我试图加载到Pig这个,但我有一个困难的时候加载它作为五个不同的领域。
我的数据集

QTM 2009,0.53,0.47,1365900
QTM 2009,0.56,0.54,1246100
QTM 2009,0.6,0.54,1023600

如果我尝试使用文本加载器加载它,它会将行作为一个字段读取。
我还尝试将它作为两个字段加载,然后使用strsplit命令,然后将这两个字段合并。问题是,默认情况下,它将其声明为bytearray。我希望能够执行聚合。我使用了以下命令:

A = Load 'NYSEB.txt' AS(Symbol:chararray, Detail:chararray);
B = Foreach A GENERATE (STRSPLIT(Symbol, ',',1)), (STRSPLIT(Detail, ',', 
4));
B = Foreach A GENERATE
flatten(STRSPLIT (Symbol, ',',1)),
flatten(STRSPLIT(Detail, ',', 4));

有人能帮帮我吗:我要我的田地(symbol:string, year:string,op:双倍,cp:双倍,vol:int)

pkln4tw6

pkln4tw61#

将文件加载到以逗号作为分隔符的4个字段中,然后使用 strsplit 在第一个字段上获取所需的5个字段。

A = LOAD 'NYSEB.txt' USING PigStorage(',') AS (symbol_year:chararray, op:double, cp:double, vol:int);
 B = FOREACH A GENERATE FLATTEN(STRSPLIT(symbol_year,'\\t',2)) as (symbol:chararray,year:chararray),op,cp,vol; 
 C = FOREACH B GENERATE symbol, year, op, cp, vol;
 DUMP C;

相关问题