如何在PIG中将字符串转换为元组 [英] how to convert string to tuple in pig

查看:0
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆