有没有办法在读取许多文件时并行化 spark.read.load(string*)?



我注意到在 spark-shell (spark 2.4.4( 中,当我做一个简单的spark.read.format(xyz).load("a","b","c",...)时,看起来 Spark 使用单个 ipc 客户端(或"线程"(来加载文件 a、b、c、...顺序(它们是HDFS的路径(。

这是意料之中的吗?

我问的原因是,就我而言,我正在尝试加载 50K 文件,并且顺序加载需要很长时间。

谢谢

PS,我正在尝试在源代码中看到它,但不确定这是否是: https://github.com/apache/spark/blob/branch-2.4/sql/core/src/main/scala/org/apache/spark/sql/DataFrameReader.scala#L180

可能不是我最初问题的确切"答案",但我发现了我特定情况的原因:从 name node 的审计日志中,发现有一些失控的作业与名称节点挂钩,这大大减慢了 RPC 调用的速度。在杀死这些不良作业后,火花的加载速度大大提高。

最新更新