来自HBase的Pig Load值为变量

时间:2016-01-18 08:58:41

标签: hbase apache-pig

在猪中,我们可以定义变量并在多个地方使用它。

%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变量值并在多个plca中使用它?

1 个答案:

答案 0 :(得分:0)

在猪脚本中,我们左手边不能有标量变量。左手边的别名只能是元组的迭代器。为了获得参数,我编写了一个shell脚本来从HBase表中获取参数并作为参数传递给shell脚本。在shell脚本中使用管道来提取值。

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

然后将其作为参数传递给pig脚本。

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