您好我正在处理大数据,因为我是一个新的蜜蜂到猪编程帮助我获得所需的输出。我有一个csv文件,其中有许多列,其中一列是价格,其中有数据类似于以下内容:
(10 Lacs)
(20 to 30 Lacs)
And i need this to be splitted as
price min max
10 null null
null 20 30
我尝试过以下代码
a = LOAD '/user/folder1/filename.csv' using PigStorage(',')as(SourceWebsite:chararray,PropertyType:chararray,PropertyId:chararray,title:chararray,bedroom:int,bathroom:int,Balconies:chararray,price:chararray,pricepersqft:chararray,builtuparea:chararray,address:chararray,otherdetails:chararray,description:chararray,posted:chararray,Features:chararray,ContactDetails:chararray);
b = FOREACH a GENERATE STRSPLIT(price, 'to');
c = FOREACH b GENERATE FLATTEN(STRSPLIT(Price,',')) AS (MAX:int,MIN:int);
dump c;
任何帮助将不胜感激。
答案 0 :(得分:1)
我刚遇到同样的问题,这就是我设法解决它的方法。
假设名为outputraw.outputlineraw
的列如下所示:
abc|def
gh|j
然后我把它分成多个列,如下所示:
output_in_columns = FOREACH output_raw GENERATE
FLATTEN(STRSPLIT(output_line_raw,'\\|'));
为了测试它是否成功,我在引用列后转储了结果:
output_selection = FOREACH output_in_columns GENERATE
$0,
$1;
DUMP output_selection;