连接chararray与Apache Pig中的元组包

时间:2016-08-05 18:27:59

标签: casting apache-pig concat

我正在尝试连接一个表的两列,其中一列是stringcharray),另一列是一包元组:

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

然而,我收到一个错误:

  

无法将org.apache.pig.builtin.CONCAT的匹配函数推断为多个或不适合。请使用明确的演员。

不知道使用什么演员表。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

CONCAT取两个相同类型的表达式。在你的PIG语句中你有3个表达式。你需要另一个CONCAT.For cast,在字段之前加上数据类型(chararray)的前缀。你也必须逃避' \'。

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

答案 1 :(得分:0)

CONCAT函数用于连接两个表达式。两个表达式的结果值必须具有相同的类型。

最终 CONCAT Java函数,它支持相同类型的参数。您可以通过传递相同类型的表达式来实现相同的目的。