我在 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 部分)和 24 大小的数组,其中事务处于活动状态的时间为 1,并将原始 RDD 映射到带有 transaction_date 的 PairRDD (只是日期部分)作为键和数组作为值。在此之后对键执行归约并添加数组的所有单个元素以获得所需的输出。
现在的问题是,有些情况下事务在深夜开始并在午夜后完成,所以在这种情况下,我想从我的函数中返回 2 行,以便对于每个事务,我在返回的 RDD 中得到 2 行。
Spark 版本:1.2.2
API 使用的是 Scala
Spark Cassandra 连接器版本 1.2.2