【问题标题】:Using coalesce(1) is taking too much time time for writing dataset to s3使用 coalesce(1) 将数据集写入 s3 需要花费太多时间
【发布时间】:2019-04-04 14:05:24
【问题描述】:

我正在使用 coalesce(1) 在 csv 进程的 s3 存储桶中写入记录集。 这对于 505 条记录来说花费了太多时间。

dataset.coalesce(1).write().csv("s3a://bucketname/path");

我想提一下,在这个写作过程之前,我有一个加密过程,它正在改变数据集行的某些字段的值。我正在使用repartion(200)。作为

dataset.javaRDD().repartition(200).map(r -> func());

如果我跳过加密过程,写入过程甚至不需要一分钟。
是什么问题导致进程变慢?
如何提高性能?

【问题讨论】:

  • 如果需要澄清,请询问

标签: java csv apache-spark coalesce apache-spark-dataset


【解决方案1】:

始终避免使用 coalesce(1) 而是使用 partition by,我想您用于加密数据的函数需要花费大量时间,因为它必须遍历所有记录,您可以将其更改为平面地图并检查表现

请您查看map and flat map

欢迎加入社区,如果有用请采纳答案。

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 2019-11-14
    • 1970-01-01
    • 2019-10-23
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多