我的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不会接受上述声明;
答案 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;