我在spark中处理大数据并将它们存储在HDFS中。有没有一种方法来提高saveAsTextFile方法在火花上的性能
但是,我觉得saveAsTextFile方法有点慢。
所以我想知道是否有办法改善它的性能。
我的原代码(这是运行速度比预期慢)
val data = sc.textFile("data", 200);
data.
flatMap(_.split(" ")).
map(word => (word, 1)).
reduceByKey(_ + _).
saveAsTextFile("output")
当我添加聚结(1),速度显着提高
val data = sc.textFile("data", 200);
data.
flatMap(_.split(" ")).
map(word => (word, 1)).
reduceByKey(_ + _).
coalesce(1).
saveAsTextFile("output")
我会推荐检查你的工作的火花主页面,它有很多关于工作不同部分时间的细节。您可能还想检查您正在写入hdfs的文件和大小。例如,你可能会写很多小文件。 – jeff
谢谢你的回复! 你能回答多一个问题吗?如果你不介意。 当我使用'sc.textFile()'加载文本文件时,我将此方法的分区参数设置为200.这是您所说的“您可能正在写很多小文件”? –
请添加您尝试过的代码。 – mrsrinivas