在Google的每个地方,Spark和Hadoop MapReduce之间的关键区别都在处理方式中有所说明:Spark可以在内存中完成,而Hadoop MapReduce必须从磁盘读取和写入磁盘。看起来我明白了,但我想举例说明。
考虑以下字数示例:
val text = sc.textFile("mytextfile.txt")
val counts = text.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
counts.collect
最佳答案
你是对的。
SPARK中间RDD( flex 分布式数据集)结果保存在内存中,因此等待时间要低得多,而作业吞吐量要高得多。 RDD具有分区,像MR这样的数据块。 SPARK还提供了迭代处理,这也是要考虑的重点。
MR确实有一个合并器,可以减轻一点疼痛。
但是SPARK与Scala或pyspark一起使用也容易得多。
总的来说,我不再担心MR。
这是SPARK BTW上的精彩读物:https://medium.com/@goyalsaurabh66/spark-basics-rdds-stages-tasks-and-dag-8da0f52f0454
https://stackoverflow.com/questions/56098691/