gpt4 book ai didi

apache-spark - 是否有可能在 spark 中并行读取大型 s3 csv 文件?

转载 作者:行者123 更新时间:2023-12-04 05:14:15 24 4
gpt4 key购买 nike

通常 spark 文件保存在多个部分,允许每个 worker 读取不同的文件。在处理单个文件时是否有类似的解决方案?s3 提供了应该允许这种行为的选择 API。

spark 似乎支持此 API ( https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-s3select.html ),但这似乎仅与优化查询相关,与并行读取无关

最佳答案

S3 Select 与您的用例无关。

  1. S3 Select:在S3 store中进行SQL select和project,让客户端获取预过滤的数据。结果以去除 header 的 CSV 格式或 JSON 格式返回。然后,您不能让 >1 名 worker 以此为目标。 (您可以尝试,但每个 worker 都必须读入并丢弃 runup 中的所有数据到其偏移量,并且预测每个 worker 可以处理的范围基本上是不可能的)

  2. 您:有 > 1 个工作人员处理文件的不同部分,该文件已分区

将大文件分成较小的部分以进行并行处理正是 Spark(以及 mapreduce、hive 等)对任何有意义的格式所做的。

如果 CSV 文件使用可拆分压缩格式(无,snappy - 但不是 gzip)进行压缩,则很容易对其进行分区

所需要做的就是告诉 spark 分割阈值是多少。对于 S3a,将值 fs.s3a.block.size 设置为一个可以拆分的值,然后您对 CSV、Avro、ORC、Parquet 和类似的查询将全部拆分给工作人员。

除非您的工作人员每行进行大量计算,否则在值得这样做之前存在最小块大小。实验。

关于apache-spark - 是否有可能在 spark 中并行读取大型 s3 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921942/

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