如何在pig中转义字符

toe95027  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(484)

我是新来的Pig,我有麻烦的数据加载到Pig。我有如下数据:
示例.txt

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

其中,分隔符是逗号(,),地址字段本身包含逗号(,)。我得把地址栏里的逗号换掉。有人来帮我吗
提前谢谢巴苏

whlutmcx

whlutmcx1#

几乎没有任何方法可以仅仅用pig构造来实现这一点。但是你可以写一个udf之类的东西,你可以尝试一些逻辑来处理这个问题,但这不是最好的方法。建议的方法是始终使用control-a(\u0001)分隔文件。

pb3s4cty

pb3s4cty2#

根据@basu注解,如果地址可以用“”而不是[]表示,则可以使用以下方法。
Pig脚本:

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

输出:转储学生地址

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

我们可以使用org.apache.pig.piggybank.storage.csvexcelstorage()或org.apache.pig.piggybank.storage.csvloader()。
有关详细信息,请参阅下面的api链接
http://pig.apache.org/docs/r0.12.0/api/org/apache/pig/piggybank/storage/csvexcelstorage.html
http://pig.apache.org/docs/r0.9.1/api/org/apache/pig/piggybank/storage/csvloader.html

相关问题