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, value)' に保存されているすべてのキーが得られます。ここで、 key' is a row key andvalue' は、特定の名前「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 に答える