String 将字符串修改为逗号分隔行-Apache 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:

在执行我的PIG脚本之后:

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谢谢:这解决了我的问题!太好了,我贴出了答案。很高兴它对你有用。如果我的回答对你有帮助,请考虑一下投票。如果我的答案证明对你有用的话,请考虑一下投票。