我需要找到最有效的方法来全局排序大尺寸的RDD ,尽可能少地改组。我需要它来避免出现性能问题,例如outOfMemory
例外等等。
由于
答案 0 :(得分:2)
您需要随机播放以获取分类的数据量RDD是固定的,因此在某种意义上,每个最小的解决方案已经尽可能少地进行了随机播放。唯一可以改进的是将排序机制推入随机播放,但这部分已由col1 int
,RDD.sortBy
或OrderedRDDFunctions.sortByKey
处理。
因此,请选择适用于您的数据的方法。例如:
JavaPairRDD.sortByKey
答案 1 :(得分:2)
您看到的内存不足异常是因为您的分区太少而且(很可能)您的数据存在偏差,因此排序会使某些分区变得非常大。 无论如何,spark中的所有优化工作都会转向数据集(和数据帧),以便更好地优化RDD到DataFrames并使用那里的构造进行排序