如何在pig中将字符串转换为元组

5cnsuln7  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(627)

我从parameter-file.json中得到一个字符串,可以使用$param访问该参数

$param='abc|cde|ghi'

我需要遍历这个param变量
我试过的代码
以下代码有错误“输入不匹配\u0027。\u0027需要正确的参数”

A= STRSPLIT($param,'\\x7c');
B=FOREACH A GENERATE 1
STORE A into '$output' using PigStorage(',');

以下代码有错误“输入不匹配\u0027。\u0027需要正确的参数”

A= STRSPLIT($param,'|');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');

以下代码在解析过程中出现“”错误\u003c文件,第7行\u003e无法展开宏\u0027strsplit\u0027。原因:在展开之前必须定义宏。“

A= STRSPLIT('$param','|');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');

以下代码在解析过程中出现“”错误\u003c文件,第7行\u003e无法展开宏\u0027strsplit\u0027。原因:在展开之前必须定义宏。“

A= STRSPLIT('$param','\\x7c');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');

以下代码有错误“”:“解析时出错\u003cline 7,第120列\u003e语法错误,在\u0027bytearrayy\u0027处或附近出现意外符号“”

A = LOAD '$userQuery' USING PigStorage('|') AS (name:bytearrayy);
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');

以下代码在解析过程中出现“”错误\u003cline 7,第9列\u003e输入不匹配\u0027。\u0027应为quotedstring“”

A = LOAD $userQuery USING PigStorage('|') AS (name:bytearrayy);
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');

关于如何完成所需任务的任何建议。
谢谢

p8h8hvxi

p8h8hvxi1#

pig udf应该用于关系运算符,如 FOREACH .

A = LOAD 'a.txt' USING PigStorage(',') AS (name:chararray);
B = FOREACH A GENERATE STRSPLIT(name,'\\x7c') AS names;
C = FOREACH B GENERATE names.$0,names.$1,names.$2 ;
DUMP C;

上面的示例代码是从本地文件a.txt读取的,

a|b|c
x|y|z
p|q|r

使用本地执行 pig -x local test1.pig 结果输出为

(a,b,c)
(x,y,z)
(p,q,r)

另外,请注意,pig错误消息在您的代码中几乎没有误导性 B=FOREACH A GENERATE 1 is not ending with semicolon ";"

相关问题