使用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);
然而,我觉得我错过了一条直截了当的路。感谢您的帮助。
1条答案
按热度按时间66bbxpm51#
使用tobag()和totuple()自定义项(从0.8开始)