Apache Pig中的模式格式

时间:2017-04-02 22:30:45

标签: apache-pig

我是这种语言的新手,我正在尝试为excel电子表格中的数据创建一个架构并下载到文本文件。

  

(附上文字文件)

请注意我没有java知识,所以这都是Pig。
是否有人可以帮助我正确格式化以匹配架构并删除数字值中的逗号?

我的尝试代码:

sales2000 = LOAD '2000rssales1.txt'  USING PigStorage()
AS (field1:chararray,field2:chararray,field3:int,field4:int,field5:int,
field6:chararray,field7:chararray,field8:chararray,field9:chararray,field10:chararray,
field12:chararray,field13:chararray,field14:chararray,field15:int)
 `The field I would like to do calculations on is field15  [![text.sales.data][1]][1]`

1 个答案:

答案 0 :(得分:0)

将其加载到一个字段line:charrarray中,然后替换','和"""。然后你可以使用'分割字段。 '并使用第15个字段进行计算。

A = LOAD '2000rssales1.txt' AS (line:chararray);
B = FOREACH A GENERATE REPLACE(REPLACE(line,"\"",''),',','');
C = FOREACH B GENERATE STRSPLIT($0,' ',15); -- If your columns are tab separated use '\\t' instead of ' ' in strsplit.

或者您也可以使用CSVExcelStorage()来加载记录。下载piggybank.jar并使用您下载它的路径注册它。

REGISTER /downloaded_path/piggybank.jar;
A = LOAD '2000rssales1.txt' USING org.apache.pig.piggybank.storage.CSVExcelStorage('\t')
B = FOREACH A GENERATE $0..$13,REPLACE($14,',',''); -- Replace the ',' with space for the 15th field;
DUMP B;