在Apache Pig中处理分隔符

问题描述:

我有一个逗号分隔值文件。在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) 

有越来越创建的数据问题。

你能否建议如何处理猪脚本中的这个数据问题?

如果文件是正确的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,知道你的第三场由“<”开始。(用猪https://pig.apache.org/docs/r0.11.1/func.html#regex-extract-all正则表达式的功能)。告诉我你是否需要更多信息。