如何使用PIG访问Cassandra Columns

时间:2013-03-07 19:34:59

标签: cassandra apache-pig

我的Cassandra KeySpace中有一个简单的列族。我需要使用PIG访问它。请帮助我理解这是如何工作的:

SD = LOAD 'cassandra://SampleData/Queries' USING CassandraStorage() as (f1,f2,f3);

如果我执行

X  = foreach SD generate f1; dump X;

它为我提供了存储在`Queries'' table. I need to be able to generate a couple(键,值)中的所有键,其中key' is a row key and value'是此键的列值,具有特定名称`UpdateTimeStamp'

我想出来,如果我做了

Y = foreach SD generate f2.name; dump Y;

它遍历所有行的列表并打印每行中存在的列的名称

如果我这样做

Z = foreach SD generate f2.value; dump Z;

它给了我与上面相同的东西,除了代替列名,它打印列值。

我需要能够生成这样的关系(key,timestamp):

T = foreach SD generate (f1, f2.value(for f2.name == 'UpdateTimeStamp'));

显然,PIG不会接受上述声明;

1 个答案:

答案 0 :(得分:0)

cassandra中的列作为元组的内袋加载到PIG中。

试试这个

data = LOAD 'cassandra://SampleData/Queries' USING CassandraStorage()
   AS (keycolumn, columns: bag {T: tuple(columnname, columnvalue)});

dump data; // check for what is in the data alias

data2 = FOREACH data GENERATE keycolumn, columns.name);

dump data2;