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

Apache pig 如何在pig中将字符串转换为元组,apache-pig,Apache Pig,我有一个从parameter-file.json获取的字符串。可以使用$param访问该参数 $param='abc|cde|ghi' 我需要遍历这个param变量 我试过的代码 以下代码存在输入不匹配的错误\u0027。\u0027应为正确参数 以下代码存在输入不匹配的错误\u0027。\u0027应为正确参数 以下代码在解析过程中出现错误\U003C文件,第7行\u003e无法展开宏\u0027STRSPLIT\u0027。原因:展开前必须定义宏 以下代码在解析过程中出现错误\U003C文

我有一个从parameter-file.json获取的字符串。可以使用$param访问该参数

$param='abc|cde|ghi'
我需要遍历这个param变量

我试过的代码

以下代码存在输入不匹配的错误\u0027。\u0027应为正确参数

以下代码存在输入不匹配的错误\u0027。\u0027应为正确参数

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

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

以下代码的错误为:解析期间出错\u003cline 7,第120列\u003e语法错误,意外符号位于\u0027bytearrayy\u0027或其附近

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

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

谢谢

pig udf应该在关系运算符(如FOREACH)中使用

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

a|b|c
x|y|z
p|q|r
使用local pig-x local test1.pig执行

结果输出为

(a,b,c)
(x,y,z)
(p,q,r)
另外,请注意,在您的代码中,pig错误消息几乎没有误导性
B=FOREACH A GENERATE 1未以分号结尾

好吧,即使有“;”这个词我也犯了同样的错误。我不想从文件中读取,我将其作为一个变量,名称为$param。我建议您使用shell脚本并使用shell cmds获取文件名以拆分等,在脚本中使用文件名为param调用pig。pig不像java/c那样是通用语言,正如我所说的,所有的UDF都必须应用于数据。
A= STRSPLIT('$param','|');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
A= STRSPLIT('$param','\\x7c');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
A = LOAD '$userQuery' USING PigStorage('|') AS (name:bytearrayy);
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
A = LOAD $userQuery USING PigStorage('|') AS (name:bytearrayy);
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
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|b|c
x|y|z
p|q|r
(a,b,c)
(x,y,z)
(p,q,r)