我的csv文件包含150列!它包含""
作为文本限定符。如何使用""
脚本删除引号(pig/hive/hbase dynamic
)?同样,我有多个文件(50个csv文件具有不同的列)。如何从不同的文件中删除这些""
?
我尝试使用以下猪脚本在文件中添加2列:
A = LOAD 'hdfs://<hostname>:<port>/user/test/input.csv' AS line;
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'"(.*)","(.*)"')) AS (id:int,name:chararray);
STORE B INTO '/user/test/output' USING PigStorage(',');
任何帮助都将不胜感激。
答案 0 :(得分:0)
你能这样试试吗?
<强> input.txt中强>
"123","456","789"
"abc","def","ghi"
<强> PigScript:强>
A = LOAD 'input.txt' AS line;
B = FOREACH A GENERATE REPLACE(line,'\\"','') AS line1;
C = FOREACH B GENERATE FLATTEN(STRSPLIT(line1,'\\,',3));
D = FOREACH C GENERATE $0,$1,$2;
DUMP D;
<强>输出:强>
(123,456,789)
(abc,def,ghi)
在您的情况下,您可以将上面的第3行更改为STRSPLIT(line1,'\\,',150)
,其中150是列总数,您可以按$0,$1...$149