我有一个逗号分隔的值文件。
数据示例:
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中处理此数据问题?
答案 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函数)。如果您需要更多信息,请告诉我。