让我们假设一个文件" test1"有两个字段" a" &安培; " B"
样本值:
"嗨,你好吗"," 1"
"太热了"," 2"
注意第一条记录有2个逗号,并且仅使用双引号区分为2列值。 第二条记录是任何一种逗号。
如何编写一个猪脚本,它将加载具有双引号值的文件。所以基本上想告诉Pig解释器,字段值用双引号括起来。
在Hive中可以实现类似的事情,如下所示:
创建表test1(
一个字符串
,b字符串
);
行格式serde' com.bizo.hive.serde.csv.CSVSerde'与serdeproperties(
" separatorChar" =" \,",
" quoteChar" =" \"")
存储为文本文件;
答案 0 :(得分:1)
A = LOAD '/path/to/file/' USING TextLoader() AS (line:chararray);
B = FOREACH A GENERATE FLATTEN(STRSPLIT(line, '","'));
C = FOREACH B GENERATE REPLACE($0,'"',''), REPLACE($1,'"','');
STORE C INTO '/path/to/output/';
对不起,我无法测试这个,但我以前遇到过这个问题。希望它有所帮助,并希望看到是否还有其他方法可以做到这一点。