2016-01-18 53 views
0

在豬中,我們可以定義變量並在多個地方使用它。將HBase的負載值作爲變量

%declare variable_name 'value' 

在我的例子中,我有HBase表。我只有一行一列。該單元格的值是動態表的名稱。所以我想讀取該值,並且需要在其他查詢中使用該值。我已經寫了。

table_name = LOAD 'hbase://sample' 
       USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('table_name:passive','-limit 1') 
       AS (table_name:chararray); 

如何,我可以使用這個table_name的值作爲CHAR_ARRAY變量的值,並在多個plcaes使用它?

+0

您想在哪裏使用它?在PIG腳本中? –

回答

0

在豬腳本中我們不能在左手邊有標量變量。左手邊別名只能是元組的迭代器。爲了獲得參數,我寫了一個shell腳本從HBase表中獲取參數,並將其作爲參數傳遞給shell腳本。在shell腳本中使用管道提取值。

argument=$(echo "hbase query to get value" | hbase shell | grep value | grep -o "value=.*" | cut -f2- -d'=') 

然後將它作爲參數傳遞給豬腳本。

pig -param argument1=$argument -f sample.pig