2016-08-05 66 views
0

我試圖來連接表的兩列,其中之一是stringcharray),另一種是元組的包:串聯chararray Apache中的豬的元組包

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

然而,我得到一個錯誤:

Could not infer the matching function for org.apache.pig.builtin.CONCAT as multiple or none of them fit. Please use an explicit cast.

不知道使用什麼。有人可以幫忙嗎?

回答

0

CONCAT取兩個相同類型的表達式。在您的PIG語句中,您有3個表達式。您需要另一個CONCAT.For鑄造,在該字段之前加上數據類型(chararray)。此外,您將不得不逃避' \」。

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

CONCAT函數來連接兩個表達式。兩個表達式的結果值必須具有相同的類型。

最終CONCAT是一個Java函數它支持相同類型的參數。你可以通過傳遞相同類型的表達式來實現。