在Apache Pig中处理分隔符

时间:2015-10-19 08:52:17

标签: html apache-pig

我有一个逗号分隔的值文件。

数据示例:

1001,Laptop,beautify,laptop amazing price,<HTML>XYZ</HTML>,1345

1002,Camera,Best Mega Pixel,<HTML>ABC</HTML>,4567

1003,TV,Best Price,<HTML>DEF</HTML>,8791

我们只有5列:id, Device, Description, HTML Code, Identifier

对于一些记录,,列中有一个额外的Description

例如,上述示例数据中的First Records有额外的, [beautify,laptop amazing price],我想消除它。

将数据加载到PIG 5中时:

INFILE1 = LOAD 'file1.csv' using PigStorage(',') as (id,Device,Description,HTML Code,Identifier)

创建了一个数据问题。

您能否建议如何在Pig Script中处理此数据问题?

1 个答案:

答案 0 :(得分:1)

如果文件是正确的csv,它应该在包含昏迷的字段的开头和结尾处有双引号。然后,您只需使用CSVLoader加载数据:https://pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/storage/CSVLoader.html

register 'piggybank.jar' ;
define CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
INFILE1 = LOAD 'file1.csv' using CSVLoader() as (id,Device,Description,HTML Code,Identifier)

如果你没有任何双引号,也许你可以尝试一个ragex,知道你的第三个字段以&#34;&lt;&#34; ..(在Pig https://pig.apache.org/docs/r0.11.1/func.html#regex-extract-all中使用Regex函数)。如果您需要更多信息,请告诉我。