[英]Difference between reduce and reduceByKey in Apache Spark
Apache Spark 中的 reduce 和 reduceByKey 在功能方面有什么區別? 為什么reduceByKey 是一個轉換而reduce 是一個動作?
這與我解釋 reduceByKey 的答案很接近,但我將詳細說明使兩者不同的特定部分。 但是,請參閱我的回答,了解有關reduceByKey
內部結構的更多reduceByKey
。
基本上, reduce
必須將整個數據集拉到一個位置,因為它正在減少到一個最終值。 另一方面, reduceByKey
是每個鍵的一個值。 由於此操作可以首先在本地每台機器上運行,因此它可以保留為 RDD 並對其數據集進行進一步的轉換。
但是請注意,您還可以使用reduceByKeyLocally
自動將 Map 下拉到單個位置。
這是qt助手:
reduce(f):使用指定的可交換和結合二元運算符減少此 RDD 的元素。 目前在本地減少分區。
reduceByKey(func, numPartitions=None, partitionFunc=) :使用關聯和可交換的歸約函數合並每個鍵的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.