我正在尝试连接一个表的两列,其中一列是string
(charray
),另一列是一包元组:
t1 = GROUP K by domain;
t2 = FOREACH t1 GENERATE CONCAT(t1.group, '\t', t1.K);
然而,我收到一个错误:
无法将org.apache.pig.builtin.CONCAT的匹配函数推断为多个或不适合。请使用明确的演员。
不知道使用什么演员表。有人可以帮忙吗?
答案 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函数,它支持相同类型的参数。您可以通过传递相同类型的表达式来实现相同的目的。