Apache pig Pig函数中的StrSplit

Apache pig Pig函数中的StrSplit,apache-pig,Apache Pig,有人能解释一下如何在Pigscript中获得下面的输出吗 我的输入文件在下面 a、 文本 我正在这样写猪的剧本 A = LOAD 'a.txt' USING PigStorage(',') AS(a1:chararray,a2:chararray,a3:chararray); B = FOREACH A GENERATE FLATTEN(STRSPLIT(a1)),a2,a3; 我不知道该怎么做。。 我需要像下面这样输出。基本上我需要第一个原子中点符号后的所有字符 (kyl,data,data

有人能解释一下如何在Pigscript中获得下面的输出吗

我的输入文件在下面

a、 文本

我正在这样写猪的剧本

A = LOAD 'a.txt' USING PigStorage(',') AS(a1:chararray,a2:chararray,a3:chararray);
B = FOREACH A GENERATE FLATTEN(STRSPLIT(a1)),a2,a3;
我不知道该怎么做。。 我需要像下面这样输出。基本上我需要第一个原子中点符号后的所有字符

(kyl,data,data)
(kkk,data,data)
(hj,data,data)
(dff,data,data)

有人能告诉我这个的代码吗-

当pig解析例程遇到点时,这里有一个转义问题,因为它被认为是运算符。有关更多信息,请参阅此链接

可以将unicode转义序列改为点:\u002E。但是,这也必须是斜杠转义的,并放在一个带引号的字符串中

下面的代码将为您完成工作,您可以根据自己的方便进行微调-

A = LOAD 'a.txt' USING PigStorage(',') AS(a1:chararray,a2:chararray,a3:chararray);
B = FOREACH A GENERATE FLATTEN(STRSPLIT(a1,'\\u002E')) as (a1:chararray, a1of1:chararray),a2,a3;
C = FOREACH B GENERATE a1of1,a2,a3;
希望这有帮助

A = LOAD 'a.txt' USING PigStorage(',') AS(a1:chararray,a2:chararray,a3:chararray);

B = FOREACH A GENERATE FLATTEN(STRSPLIT(a1,'.')),a2,a3;
这将a1分为两部分,即点前和点后,从中可以选择点后运算符

C = foreach B generate $1,$2,$3;
其中,$1在点运算符之后

您可以通过以下方式尝试使用STRSPLIT()

A = LOAD 'C:\\Users\\Ren\\Desktop\\file' USING PigStorage(',') AS(a1:chararray,a2:chararray,a3:chararray); 

B = foreach A generate SUBSTRING(a1,INDEXOF(a1,'.',0)+1,(int)SIZE(a1)),a2,a3;                                                                                 

很好的解释。。我们是否也需要对管道符号和逗号应用这种unicode转义序列。否不适用于管道和逗号检查清管器文档
A = LOAD 'C:\\Users\\Ren\\Desktop\\file' USING PigStorage(',') AS(a1:chararray,a2:chararray,a3:chararray); 

B = foreach A generate SUBSTRING(a1,INDEXOF(a1,'.',0)+1,(int)SIZE(a1)),a2,a3;