首页 > 解决方案 > 哪个更好,使用 join spark 方法或获取已经被 sql 连接的数据集?

问题描述

我必须决定以下哪一项是执行 SQL 连接的最佳选择:

我有两个表的查询,在某些情况下,它们的结果集大小可能相差很大。我正在寻找利用火花,但不超载它。

鉴于以下两个查询:

query1 = SELECT  ROW_NUMBER() OVER (ORDER BY SOME_FILEDS) ID, MORE_FIELDS FROM TABLE1 WHERE CONDITIONS;
query2 = SELECT ROW_NUMBER() over (partition by FIELD) id, SOME_FIELDS FROM TABLE2 WHERE CONDITIONS;

第一个选项

我将行放入数据集中:

Dataset<Row> table1 = getDataset(query1);
Dataset<Row> table2 = getDataset(query2);

最后加入:

Dataset<Row> joined = table1.join(table2);

第二种选择

构建连接查询

joinQuery = query1 join query2

我将行放入数据集中:

Dataset<Row> joined = getDataset(joinQuery);

标签: javaapache-sparkjoinapache-spark-sqlapache-spark-dataset

解决方案


推荐阅读