我正在使用coalesce(1)在csv进程中将记录集写入s3存储桶中。 505条记录花费了太多时间。
dataset.coalesce(1).write().csv("s3a://bucketname/path");
我想提到的是,在此编写过程之前,我正在执行一个加密过程,该过程正在更改数据集行中某些字段的值。那里我正在使用repartion(200)。为
dataset.javaRDD().repartition(200).map(r -> func());
如果我跳过输入过程,那么编写过程甚至不需要一分钟。
是什么原因导致进程变慢?
如何提高性能?
答案 0 :(得分:0)
始终避免使用Coalesce(1)而是使用partition by,我想您用于加密数据的函数要花费很多时间,因为它必须遍历所有记录,因此可以将其更改为平面图并检查性能
要求您检查map and flat map
欢迎来到社区,如果有用的话,请接受答案。