次のデータモデルを使用してcassandraにいくつかのデータがあります。
transaction_id : uuid
start_date: timestamp
end_date: timestamp
PRIMARY KEY(transaction_id)
今、私はこのデータを何かに変換したい:
aggregation_date : timestamp
number_of_active_transaction_0 : int
number_of_active_transaction_1 : int
number_of_active_transaction_2 : int
...
number_of_open_transaction_23 : int
PRIMARY KEY((aggregation_date))
現在、開始日と終了日を取り、transaction_date のタプル (Date 部分のみ) と、トランザクションがアクティブだった時間の値が 1 の 24 サイズの配列を返し、元の RDD を transaction_date を使用して PairRDD にマップする関数を作成しました。 (日付部分のみ) をキーとして、配列を値として。この後、キーに対してreduceを実行し、配列の個々の要素をすべて追加して、目的の出力を取得します。
問題は、トランザクションが深夜に開始され、真夜中過ぎに完了する場合があるため、そのような場合、関数から 2 行を返して、トランザクションごとに返された RDD で 2 行を取得することです。
Spark バージョン: 1.2.2
使用される API は Scala
Spark Cassandra コネクタ バージョン 1.2.2 です。