这是我的环境:
Python:2.7.12
Pyspark:2.3.0
我要将SparkSQL的旧版本脚本重写为DataFrame,最后将其编写为avro文件。
SparkSQL版本包含一个庞大的SQL,其中包含许多联接和分组。运行SparkSQL版本需要30分钟,而运行DataFrame版本需要14小时,尽管两者最终都会产生相同的结果。
我已经尝试调整spark参数(执行程序的数量,内存等)以提高性能,并在必要时进行缓存和重新分区,但是DataFrame版本并没有太大的改进。
了解到DataFrame通常比SparkSQL慢一点,但是应该没有太大的区别。
关于我应该看哪一部分的任何想法? 谢谢!