gpt4 book ai didi

apache-spark - 有什么方法可以使用 spark 从 s3 并行读取多个 Parquet 路径?

转载 作者:行者123 更新时间:2023-12-05 07:01:44 26 4
gpt4 key购买 nike

我的数据存储在不同路径下的 s3(parquet 格式)中,我正在使用 spark.read.parquet(pathes:_*) 以便将所有路径读取到一个数据帧中。不幸的是,spark 是顺序读取 parquet 元数据(一个接一个路径),而不是并行读取。spark 读取元数据后,数据本身将被并行读取。但是元数据部分 super 慢,而且机器没有得到充分利用。

有什么方法可以使用 spark 从 s3 并行读取多个 parquet 路径吗?

很高兴听到您对此的意见。

最佳答案

所以过了一段时间后,我发现我可以通过读取不同线程上的每个路径并合并结果来实现它。例如:

val paths = List[String]("a","b","c")
val parallelPaths = paths.par
parallelPaths.tasksupport = new ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(paths.length))
paths.map(path => spark.read.parquet(path)).reduce(_ union _)

关于apache-spark - 有什么方法可以使用 spark 从 s3 并行读取多个 Parquet 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63755158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com