Pig - 在gzip文件中删除嵌入的换行符和逗号

时间:2015-07-13 21:52:27

标签: regex apache-pig newline comma

我有一个gzip文件,数据字段用逗号分隔。我目前正在使用PigStorage加载文件,如下所示:

A = load 'myfile.gz' USING PigStorage(',') AS (id,date,text);

gzip文件中的数据包含嵌入字符 - 嵌入的换行符和逗号。这些字符存在于所有三个字段中 - id,date和text。嵌入的字符始终在“”引号内。

我想在进行任何进一步处理之前替换或删除这些字符使用Pig

我想我需要先查看“”引号的出现。找到这些引号后,我需要查看这些引号中的字符串,并在其中搜索逗号和换行符。一旦找到,我需要用空格替换它们或删除它们。

如何通过Pig实现这一目标?

1 个答案:

答案 0 :(得分:2)

试试这个:

REGISTER piggybank.jar; 
A = LOAD 'myfile.gz' USING org.apache.pig.piggybank.storage.CSVExcelStorage() AS (id:chararray,date:chararray,text:chararray);
B = FOREACH A GENERATE  REPLACE(REPLACE(id,'\n',''),',','') AS id, REPLACE(REPLACE(date,'\n',''),',','') AS date, REPLACE(REPLACE(text,'\n',''),',','') AS text;

我们可以使用:org.apache.pig.piggybank.storage.CSVExcelStorage()或org.apache.pig.piggybank.storage.CSVLoader()。

有关详细信息,请参阅以下API链接

  1. http://pig.apache.org/docs/r0.12.0/api/org/apache/pig/piggybank/storage/CSVExcelStorage.html
  2. http://pig.apache.org/docs/r0.9.1/api/org/apache/pig/piggybank/storage/CSVLoader.html