在猪中,我们可以定义变量并在多个地方使用它。
%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中使用它?
答案 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