【发布时间】:2021-05-19 02:18:23
【问题描述】:
我是 pySpark 的新手。我正在尝试优化程序在本地模式下的执行时间。我在某处读到将dataframe 保存到镶木地板,然后在对其进行任何转换之前再次加载它可以减少执行时间,尽管我不明白为什么。此外,在此过程中,我注意到从镶木地板加载所需的时间比从csv 加载的时间要长。在下面的示例中,我重新分区并合并了我的数据以最小化加载时间(8 个分区 - 数据大小:大约 400kB)。
我的主要问题是:关于如何提高程序性能以及为什么 parquet 的加载时间比 csv 更长?
这是我的配置:
spark.driver.bindAddress: localhost
spark.ui.port: 4040
spark.driver.memory: "12g"
spark.driver.memoryOverhead: 4096
spark.sql.shuffle.partitions: 8
spark.default.parallelism: 8
spark.master: "local[8]"
# spark.sql.analyzer.failAmbiguousSelfJoin: false
【问题讨论】:
-
我希望 parquet 的初始开销比 CSV 高一些。 400k 非常小,所以你可能会遇到这个问题。我很想看看更大文件的数字。
-
但是在这个小 csv 上执行的查询会比同样大小的 parquet 花费更长的时间,对吧?
-
@VectorXY 对同一 Vector 的任何更新,我很想知道结果如何?
标签: apache-spark pyspark