Datastaxの Pig の例を使用すると、次のようにして Cassandra からデータをロードできます。
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を使用してschemaを指定しようとして失敗しましたが、追加のGROUPステートメントを使用してそれを実行しようとしました。
grouped = GROUP total_scores by name;
cass_in = FOREACH grouped GENERATE group, total_scores.(co,total);
しかし、私が見逃している簡単な方法があるに違いないと感じています。どんな助けでも大歓迎です。