Apache Pig - 如何加载包含在双引号内并用逗号分隔的字段的文件

时间:2015-10-13 09:22:47

标签: apache-pig

让我们假设一个文件" test1"有两个字段" a" &安培; " B"

样本值:

"嗨,你好吗"," 1"

"太热了"," 2"

注意第一条记录有2个逗号,并且仅使用双引号区分为2列值。 第二条记录是任何一种逗号。

如何编写一个猪脚本,它将加载具有双引号值的文件。所以基本上想告诉Pig解释器,字段值用双引号括起来。

在Hive中可以实现类似的事情,如下所示:

创建表test1(
    一个字符串    ,b字符串        );      行格式serde' com.bizo.hive.serde.csv.CSVSerde'与serdeproperties(      " separatorChar" =" \,",      " quoteChar" =" \"")
     存储为文本文件;

1 个答案:

答案 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/';

对不起,我无法测试这个,但我以前遇到过这个问题。希望它有所帮助,并希望看到是否还有其他方法可以做到这一点。