如何逃避猪的性格

时间:2015-06-19 13:48:16

标签: hadoop apache-pig

我是Pig的新手,我在将数据加载到猪时遇到了麻烦。 我有如下数据:

example.txt中

name,id,address,age
basu,1,[73,dvg,india],24
nithi,2,[78,bang,india],24

在此,分隔符是逗号(,),地址字段本身包含逗号(,)。我需要在地址字段中删除这些逗号。请有人帮我这个

提前致谢 巴苏

2 个答案:

答案 0 :(得分:0)

根据@Basu注释,如果地址可以用“”代替[],则可以使用以下方法。

猪脚本:

REGISTER piggybank.jar; 
student_details = LOAD 'student.csv' USING org.apache.pig.piggybank.storage.CSVLoader() AS (name:chararray,id:long,address:chararray, age:long); 
student_address = FOREACH student_details GENERATE address;
DUMP student_address;

输入:student.csv

basu,1,"73,dvg,india",24
nithi,2,"78,bang,india",24

输出:DUMP student_address

(73,dvg,india)
(78,bang,india)

我们可以使用: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

答案 1 :(得分:-1)

只有猪的构造几乎没有办法做到这一点。但是,是的,您可以通过编写UDF类型的东西来执行此操作,您可以尝试某种逻辑并处理此问题,但这不是最好的方法。建议的方法是始终具有control-a(\ u0001)分隔文件。