在pig中生成cassandra友好关系

umuewwlo  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(272)

使用datastax中的pig示例,可以通过

cassandra_data = LOAD 'cassandra://PigDemo/Scores' USING CassandraStorage()
   AS (name, columns: bag {T: tuple(score, value)});

下一步,您可以通过

total_scores = FOREACH cassandra_data GENERATE name, COUNT(columns.score) as counts,
   LongSum(columns.score) as total;

在阅读了pig参考手册之后,我并不清楚如何重写/扩展上面的代码来生成一个关系,我可以将它存储回cassandra。它应该有格式

(<row_key>,{(<column_name1>,<value1>),(<column_name2>,<value2>)})

在我们的情况下

(name,{('counts',counts),('total',total)})

我尝试使用as并指定架构,但未成功,我尝试使用附加的group语句:

grouped  = GROUP total_scores by name;
cass_in = FOREACH grouped GENERATE group, total_scores.(co,total);

然而,我觉得我错过了一条直截了当的路。感谢您的帮助。

66bbxpm5

66bbxpm51#

使用tobag()和totuple()自定义项(从0.8开始)

FOREACH grouped GENERATE group, TOBAG(TOTUPLE('counts', total_scores.counts), TOTUPLE('total', total_scores.total));

相关问题