2013-03-07 40 views
0

我在Cassandra KeySpace中有一个简单的色谱柱系列。我需要使用PIG访问它。请帮助我理解它是如何工作的:如何访问Cassandra色谱柱与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价值”是a的值通过此键与

我想出了一个特定的名字`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')); 

显然,猪不会采取上述的说法;

回答

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;