String 将字符串修改为逗号分隔行-Apache PIG
在执行我的PIG脚本之后:String 将字符串修改为逗号分隔行-Apache PIG,string,group-by,apache-pig,String,Group By,Apache Pig,在执行我的PIG脚本之后: FILE = LOAD 'PATH_FILE' USING PigStorage(',') as (ID:Long, MUNICIPALITY:String, CITY:Int, COUNTRY:Int, COMPANY:Long, BRAND:Long, DATE:Chararray, STOCK_NAME:
FILE = LOAD 'PATH_FILE'
USING PigStorage(',') as
(ID:Long,
MUNICIPALITY:String,
CITY:Int,
COUNTRY:Int,
COMPANY:Long,
BRAND:Long,
DATE:Chararray,
STOCK_NAME:Chararray,
STOCK_SIZE:Double,
STOCK_AMOUNT:Double);
DATA = GROUP FILE BY (ID,MUNICIPALITY);
GRP_DATA = FOREACH DATA GENERATE group as STOCK_ID, FILE.COMPANY as COMPANY, FILE.BRAND as BRAND,FILE.DATE as DATE, FILE.STOCK_NAME AS STOCK_NAME, SUM(FILE.STOCK_AMOUNT) as STOCK_AMOUNT;
RANKING = rank GRP_DATA by STOCK_NAME,COMPANY,BRAND;
STORE RANKING INTO 'PATH_DESTINATION USING PigStorage(',');
我得到这个输出:
1,(7287026502032012,18),{(706)},{(101200010)},{(17286)},{(oz)},2.5
我如何使用PIG才能获得该行:
1,7287026502032012,18,706,101200010,17286,oz,2.5
可以退货吗
非常感谢 您可以使用正则表达式删除所有
(
,)
,{
和}
:
[(){}]+
看
猪:
A = LOAD 'input.txt' as line;
B = FOREACH A GENERATE REPLACE(line,'[(){}]+','');
dump B;
您可以使用正则表达式删除所有
(
,)
,{
和}
:
[(){}]+
看
猪:
A = LOAD 'input.txt' as line;
B = FOREACH A GENERATE REPLACE(line,'[(){}]+','');
dump B;
尝试
A=LOAD'input.txt'作为行;B=每个A生成替换(行“[(){}]+”,”);垃圾场B代码>谢谢:这解决了我的问题!太好了,我发布了答案。试着把'input.txt'作为行加载;B=每个A生成替换(行“[(){}]+”,”);垃圾场B代码>谢谢:这解决了我的问题!太好了,我贴出了答案。很高兴它对你有用。如果我的回答对你有帮助,请考虑一下投票。如果我的答案证明对你有用的话,请考虑一下投票。