我的列的名字和姓氏用空格隔开。我想使用Pig函数拆分为2个不同的列。我想到了STRSPLIT函数,但我不知道如何使用它。
有人可以帮我解决这个简单的问题吗?

最佳答案

您可以尝试以下类似的示例代码
我在这里做的是
1.将每一行读为单列
2.使用空格作为定界符应用STRSPLIT函数
3.将名字和姓氏存储在两个不同的列中

input.txt
Pearson Charles
James  Michael
Smith Linda

PigScript:
A = LOAD 'input.txt' AS line;
B = FOREACH A GENERATE FLATTEN(STRSPLIT(line,'\\s+',2)) AS (firstname:chararray,lastname:chararray);
C = FOREACH B GENERATE firstname,lastname;
DUMP C;

Output:
(Pearson,Charles)
(James,Michael)
(Smith,Linda)

通过此链接查看更多信息
http://pig.apache.org/docs/r0.13.0/func.html#strsplit

关于hadoop - pig 脚本STRSPLIT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26473526/

10-10 16:21