2015-09-06 51 views
0

這裏是我的代碼和錯誤,在Hadoop上使用Pig,任何人都有什麼好主意?謝謝。DUMP在Pig中的奇怪錯誤

-- ({(3),(4),(1),(2),(7),(5),(6)},{(1),(3),(5),(12)}) 
A = load 'input.txt' AS (B1:bag{T:tuple(val:int)},B2:bag{T:tuple(val:int)}); 

DUMP A.B1; 
DUMP A.B2; 



[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Encountered " <PATH> "A.B1 "" at line 4, column 6. 
Was expecting: 
    <IDENTIFIER> ... 

在此先感謝, 林

回答

1

您的問題是DUMP A.B1無效豬語法。如果你只想放第一個包,B1,那麼你需要創建一個新的關係,只生成該包(類似的第二個包)。

F1 = FOREACH A GENERATE B1; 
F2 = FOREACH A GENERATE B2; 

DUMP F1; 
{(3),(4),(1),(2),(7),(5),(6)} 

DUMP F2; 
{(1),(3),(5),(12)} 
+0

感謝和具體什麼是有效的轉儲參數?並想知道爲什麼DUMP A.B1不是有效的Pig語法? :) –

+1

你可以轉儲關係;這基本上是等號左邊的任何東西。 – gobrewers14

+0

爲什麼A.B1不是一個關係?我以爲它是一個包,一個包是一種關係? –

2

豬不支持轉儲A.B1和轉儲A.B2。在這裏,B1,B2是真實的A.so.it,就像關係中的兩列一樣。我們不能用「DUMP」操作符轉儲關係列。

如果要對關係的列執行任何操作,可以使用關係運算符FOREACHGENERATE

X = FOREACH A GENERATE B1.$0;

({(3),(4),(1),(2),(7),(5)})

Y = FOREACH A GENERATE B2.$0;

({(1),(3),(5),(12)})

+0

謝謝史蒂夫,投票。 –