如何在PIG中将字符串转换为元组 [英] how to convert string to tuple in pig
本文介绍了如何在PIG中将字符串转换为元组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个从参数-file.jon获得的字符串,该参数可以使用$param访问
$param='abc|cde|ghi'
我需要循环访问此参数变量
我尝试过的代码
以下代码的错误为"输入u0027.u0027不匹配,需要Right_Paren"
A= STRSPLIT($param,'\x7c');
B=FOREACH A GENERATE 1
STORE A into '$output' using PigStorage(',');
以下代码的错误为"输入u0027.u0027不匹配,需要Right_Paren"
A= STRSPLIT($param,'|');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
以下代码在解析过程中出现""错误。U003c文件,第7u003e行不能展开宏u0027STRSPLITu0027。原因:必须在展开之前定义宏。"
A= STRSPLIT('$param','|');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
以下代码在解析过程中出现""错误。U003c文件,第7u003e行不能展开宏u0027STRSPLITu0027。原因:必须在展开之前定义宏。"
A= STRSPLIT('$param','\x7c');
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
以下代码的错误为"":"分析过程中出错。u003cline 7,列120u003e语法错误,u0027bytearrayyu0027""
A = LOAD '$userQuery' USING PigStorage('|') AS (name:bytearrayy);
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
以下代码在解析过程中出现""错误。U003cline 7,列9u003e输入不匹配u0027.u0027需要QUOTEDSTRING"
A = LOAD $userQuery USING PigStorage('|') AS (name:bytearrayy);
B=FOREACH A GENERATE 1
STORE B into '$output' using PigStorage(',');
有关如何完成所需任务的任何建议。
谢谢
推荐答案
pig
应该在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;
上述从本地文件.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 ";"
这篇关于如何在PIG中将字符串转换为元组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文