在apache pig中用元组包连接chararray

jecbmhm3  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(358)

我试图连接一个表的两列,其中一列是 string ( charray )另一个是一袋元组:

t1 = GROUP K by domain; 
t2 = FOREACH t1 GENERATE CONCAT(t1.group, '\t', t1.K);

但是,我得到一个错误:
无法推断org.apache.pig.builtin.concat的匹配函数为多个或没有匹配的函数。请使用显式转换。
不知道该用什么石膏。有人能帮忙吗?

4urapxun

4urapxun1#

concat接受两个相同类型的表达式。在pig语句中有3个表达式。您将需要另一个concat。对于强制转换,请在字段前面加上数据类型前缀(chararray)。此外,还必须转义“\”。

t2 = FOREACH t1 GENERATE CONCAT(CONCAT((chararray)t1.group,'\\t'),(chararray)t1.K);
kkih6yb8

kkih6yb82#

concat函数来连接两个表达式。两个表达式的结果值必须具有相同的类型。
concat最终是一个java函数,它支持相同类型的参数。通过传递相同类型的表达式,可以实现相同的效果。

相关问题