【发布时间】:2017-08-02 04:10:17
【问题描述】:
我有一个由(sensor_id, timestamp, data) 组成的数据集(sensor_id 是物联网设备的 id,时间戳是 UNIX 时间,数据是它们当时输出的 MD5 哈希)。表上没有主键,但每一行都是唯一的。
我需要找到所有 sensor_ids s1 和 s2 对,这样这两个传感器至少有 n (n=50) 条目 (timestamp, data) 在它们之间是相同的,即在 n他们在不同的场合以相同的时间戳发出相同的数据。
为了了解数据的大小,我有 10B 行和约 50M 不同的sensor_ids,我相信大约有约 500 万对传感器 ID 在同一时间戳至少发出 50 次相同的数据。
在 Spark 中执行此操作的最佳方法是什么?我尝试了各种方法(group-by (timestamp, data) 和/或自加入),但它们的复杂性非常昂贵。
【问题讨论】:
-
您能否添加一些示例数据、尝试的代码和预期的输出。
标签: algorithm apache-spark apache-spark-sql spark-streaming spark-dataframe