输出在Pig中两个值之间有空格的元组

问题描述

我一直在使用Pig来过滤包含以制表符分隔形式的数据的大文件。该文件中的数据采用以下格式-fname lname age

Bill Gates 50
Warren Buffet 100
Elon Musk 80
Jack Dorsey 10

我想过滤掉年龄大于50岁的那个过滤器,并使用Pig将结果数据以(fname lname)形式存储在文件中。

这是我正在使用的代码-

data = LOAD 'persons.txt' AS (fname:chararray,lname:chararray,age:int);
data1 = FILTER data BY age > 50;
data2 = FOREACH data1 GENERATE (fname,lname);
STORE data2 INTO 'result.txt';

通过使用此代码,我可以得到以下输出-

(Warren,Buffet)
(Elon,Musk)

这不是我想要的输出,而是我想要得到以下输出-

(Warren Buffet)
(Elon Musk)

为了获得这种输出,我尝试使用FOREACH data1 GENERATE (fname lname),而fname和lname之间没有逗号。但是显示错误Synatx error,unexpected symbol at or near fname

有人可以帮助我如何获得正确的输出吗?

注意->我不在本地的Hadoop群集上运行Pig。

解决方法

CONCAT中使用fname和lname之间的空格

data2 = FOREACH data1 GENERATE CONCAT(fname,' ',lname);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...