如何使用多个ctrl分隔符在pig中加载数据

时间:2016-10-16 18:56:21

标签: hadoop apache-pig

我正在装猪的文件中加上分隔符为' ^ A ^ E ^ A'

我尝试了以下命令,但它无效。

data = LOAD 'test.txt' USING PigStorage('\u0001\u0005\u0001') AS (user, time, query);

我错过了什么吗?或者有没有办法直接使用PigStorage指定上面的分隔符?如何?

感谢。

3 个答案:

答案 0 :(得分:2)

将数据加载为行:chararray

替换' \ u0001 \ u0005 \ u0001'用' |'或','

使用' |'拆分生成的行。或','生成所需的列。

{
    "tab": "Add white space",
    "name": "whitespace_Mode",
    "label": "White space mode",
    "type": "list",
    "Value": "strict",
    "values": [
        "strict",
        "preserve"
    ]
}

答案 1 :(得分:0)

我相信PigStorage不会支持多个ctrl分隔符,你可能必须编写UDF来实现这一点。

答案 2 :(得分:0)

File_Data = LOAD'thedata.csv'U使用TextLoader(); Cleansing_Data = FOREACH File_Data GENERATE REPLACE($ 0,'\ u0001 | \ u0005 \ | \ u0001',''); STORE Cleansing_Data INTO'tmp / Cleansing_Data.txt'使用PigStorage(); Final_Data = LOAD'tmp / Cleansing_Data.txt'使用PigStorage(',')AS(用户,时间,查询);