sparksql查询中重分区的用法

t98cgbkg  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(580)

我对sparksql还不熟悉。我在什么地方读到关于使用 REPARTITION() 在加入sparksql查询以获得更好的性能之前。
但是,我使用的是纯sparksql查询(不是pysparksql),我正在努力找出 REPARTITION 在这种简单的查询中,如下面的示例所示。

/* how to use repartition() here ? */
select t1.id, t2.name
from table1 t1
inner join table2 t2
on t1.id = t2.id;

有人能分享一下在上面的示例查询中使用的用法和语法吗?另外,我想了解在哪些场景中应该使用重新分区来获得更好的连接性能。
谢谢。

apeeds0o

apeeds0o1#

根据spark-24940 Spark-2.4 你可以用 repartition,coalesce sql中的提示。 Example: ```

sample dataframe has 12 partitions

spark.sql(" select * from tmp").rdd.getNumPartitions()
12

after repartition has 5 partitions

spark.sql(" select /*+ REPARTITION(5) */ * from tmp").rdd.getNumPartitions()
5

相关问题