SQL repartition
时间: 2023-09-28 16:14:05 浏览: 92
回答: 在SQL中,repartition是用来重新划分数据分区的操作。根据引用\[1\]中的解释,repartition根据传入的partitioning expressions将数据重新划分到指定数量的分区中。这个操作类似于Hive SQL中的"DISTRIBUTE BY"。repartition方法返回一个新的Dataset,其中的数据是按照哈希分区进行划分的。另外,引用\[2\]中提到,repartition方法内部实际上调用了coalesce方法,参数shuffle为true。而引用\[3\]中提到的另一种动态划分的方法是使用Oracle的rownum。这种方法可以将总数为5000万条记录划分到N个分区中,只要N远远小于总数记录,划分的结果理论上是比较平均的。所以,在SQL中,repartition可以用来重新划分数据分区,以实现更好的数据分布和负载均衡。
#### 引用[.reference_title]
- *1* *3* [sparksql运算调优纪事(三)——repartition数据倾斜处理](https://blog.csdn.net/fzuzhanghao1993/article/details/104377584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [SparkSql中的repartition 与 coalesce](https://blog.csdn.net/u014527619/article/details/88734697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文