我遇到以下问题:我有一个简单的(Py)Spark应用程序,该应用程序运行结构化流查询,该查询从自定义数据源读取数据;我进行了两个系列的测试,一个测试是将流写入CSV,另一个测试是将其打印到控制台。我在Windows 10主机和Linux一台主机上运行了相同的版本-相同的JVM和Python版本,类似的硬件配置。
结果是,该应用程序需要 15s 来处理Linux上的所有数据,并且需要 5分钟(控制台)至 9分钟(CSV)上的时间Windows。
我的感觉是,在Windows Spark上,IO花费了大量时间,尤其是在编写查询的检查点时。
有人遇到过同样的问题吗? 您对如何改善Windows的性能有何建议?
我正在使用Spark 2.4.7。
谢谢, 亚历山德罗
答案 0 :(得分:0)
在 Windows 上的 Spark 流中聚合数据帧(10 行)大约需要 5 分钟。将 spark.sql.shuffle.partitions 从默认值 (200) 减少到 1 后,延迟从 5 分钟缩短到 1-2 秒。