gpt4 book ai didi

scala - 使用 spark 和 scala 将文件写入 S3 非常慢。有什么更好的方法来优化它?

转载 作者:行者123 更新时间:2023-12-03 18:02:10 28 4
gpt4 key购买 nike

df.write.option("header", "false").
option("quote", null).
option("delimiter", Delimiter).
csv(tempPath)

当我保存 2 KB 文件时,保存到 S3 需要不到 5 秒的时间,但是当我尝试保存大约 20GB 的大文件时,需要 1 个多小时。

有什么建议可以加快写作过程吗?

我正在使用“s3a//”进行保存。

更新:当我操作大小为 5 KB 的数据并生成 20 KB 文件以存储到 S3 时,需要 8 秒。
当我尝试操作大小为 250MB 的数据并生成 20KB 文件以存储到 S3 时,需要 45 分钟。
我在保存之前进行计数,因此在保存之前通过 spark 对其进行评估。

当我使用“aws S3 cp”命令将相同的 20KBB 文件复制到 S3 时,只需不到一秒钟的时间。

那么,Spark 正在做什么以减慢保存过程?

最佳答案

这不是写,而是输出是通过重命名提交的,这在 s3a 中通过列表、副本和删除进行模拟。您拥有的文件越多,您拥有的数据就越多,所需的时间也就越长。 “使用算法 2”技术使事情稍微快一些,但使用起来并不安全,因为:

这里真正的问题是不可见的,但提交算法假定 rename() 是原子的和可靠的,而事实并非如此。数据可能会悄悄丢失

除非为您提供 s3 客户端的人另有说明,否则针对 HDFS 工作,然后复制到 S3。 (EMR S3的连接器直接使用是安全的)

  • Spark Cloud Integration
  • 星火峰会talk on spark and object stores
  • 关于scala - 使用 spark 和 scala 将文件写入 S3 非常慢。有什么更好的方法来优化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803007/

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