问题
对于描述转换(map、filter等)的SparkSQL DataFrame,是否有“SparkSQL”等效?
背景
显然,RDD和DataFrame的分娩控制是不同的。Dataframe有spark.sql.shuffle.partitions来控制重装分区(如果我正确理解的话,可以进行广泛的转换),而"spark.default.parallelism“不会产生任何影响。
但是洗牌与分区有什么关系呢?如果您正在使用RDDs…,那么实际上没有什么问题。但是有了数据处理,情况就不一样了。..。如您所见,分区数突然增加。这是因为Spark模块包含以下默认配置: spark.sql.shuffle.partitions设置为200。
下面的文章指出,spark.default.parallelism不适用于Dataframe。
spark.sql.shuffle.partitions和spark.default.parallelism有什么区别?
当用户不显式设置时,spark.default.parallelism是RDD中由连接、reduceByKey和并行化等转换返回的默认分区数。但是,spark.default.parallelism似乎只适用于原始RDD,并且在处理数据帧时被忽略。
发布于 2019-11-19 16:33:01
窄转换(map、filter)保留分区数,这就是不需要设置并行性的原因。对于可能影响分区数量的转换,设置才有意义。
https://stackoverflow.com/questions/58924453
复制相似问题