0

我的 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值'是具有特定名称“UpdateTimeStamp”的该键的列的值

我想如果我这样做

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

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

如果我做

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

它给了我和上面一样的东西,除了列名,它打印列值。

我需要能够生成这样的关系(键、时间戳):

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

显然,PIG 不会接受上述说法;

4

1 回答 1

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;
于 2013-07-29T16:49:47.277 回答