读取PIG中的文件,其中delemeter包含数据

时间:2012-02-03 10:09:43

标签: hadoop apache-pig

我想用PIG阅读一个CSV文件我该怎么办?我使用了load n pigstorage(','),但它无法正确读取CSV文件,因为它在数据中遇到逗号(,)它会拆分它。如果我还有数据逗号,我现在应该如何给出delimeter?

3 个答案:

答案 0 :(得分:3)

通常无法将数据中的逗号与逗号分隔为分隔符。 您将需要转义可识别转义逗号的“数据”和自定义加载函数(对于Pig)中的逗号。

看看这里:
http://ofps.oreilly.com/titles/9781449302641/load_and_store_funcs.html
http://pig.apache.org/docs/r0.7.0/udf.html#Load%2FStore+Functions

答案 1 :(得分:2)

如果您想阅读CSV文件,您是否看过CSVLoader中的PiggyBank加载程序? (当然文件格式必须有效)

答案 2 :(得分:-1)

首先确保您拥有有效的CSV文件。如果您没有尝试通过Excel(如果文件很小)或其他工具更改源文件,并导出具有良好分隔符的新CSV(例如:\ tt tab,;等)。更好的是可以用“好”分隔符做另一个提取。

您的加载示例可以是这样的:

  

TABLE = LOAD'input.csv'使用PigStorage(';')AS(site_id:int,   名称:chararray,...);

您的DUMP示例:

  

使用PigStorage(',')将表存入'clean.csv'; < - 最适合你的分隔符