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

Pig - Remove embedded newlines and commas in gzip files

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

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

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

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

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

如何通过 Pig 实现此目的?

试试这个:

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