Apache Spark自行连接多个列上的大数据集

时间:2016-08-29 12:54:57

标签: java apache-spark apache-spark-dataset apache-spark-1.6

我正在使用纱线在hadoop群集上运行apache spark。 我有一个大数据集,类似1.6亿条记录。我必须进行自我加入。连接是在1列(c1)的完全匹配,日期重叠匹配和2个以上列中的至少1列匹配(比如c3或c4)。

我在RDD中读取了HBase中的数据并将该RDD转换为DATASET,然后我进行了连接。 所以我的问题是:

1)如果我在进行连接之前对c1上的rdd进行分区(这必须始终匹配)会不会有帮助,这样火花只会加入分区而不是乱扔一切?

2)我也通过使用键来做到这一点,例如:c1 + c3和c1 + c4然后按键进行连接,但是我必须按日期重叠过滤所有结果,我认为添加了连接中的日期重叠将导致生成的记录更少。

3)有没有一种有效的方法可以在精确的列值上进行自我连接,还可以在其他列之间进行一些比较吗?

0 个答案:

没有答案