Join Spark经验法则用于估计联接资源使用情况

Join Spark经验法则用于估计联接资源使用情况,join,apache-spark,rdd,Join,Apache Spark,Rdd,我需要加入两个RDD,其中一个是(150K,25K),另一个是(3M,4)。但是,当我尝试rdd1.join(rdd2)时,会花费很长时间,并出现错误消息“GC collection overed the limit”。我已经将执行器内存设置为16GB 我想以下是我的问题: (1) 根据数据大小调整执行器内存大小的经验法则是什么 (2)对于这种类型的矩阵连接,我是否应该考虑使用EMRSK,这样它可以在没有太多麻烦的情况下扩展,或者我应该开始使用GPU,因为它更好地处理矩阵操作。如有任何建议/想法

我需要加入两个RDD,其中一个是(150K,25K),另一个是(3M,4)。但是,当我尝试
rdd1.join(rdd2)
时,会花费很长时间,并出现错误消息“GC collection overed the limit”。我已经将执行器内存设置为16GB

我想以下是我的问题:

(1) 根据数据大小调整执行器内存大小的经验法则是什么


(2)对于这种类型的矩阵连接,我是否应该考虑使用EMRSK,这样它可以在没有太多麻烦的情况下扩展,或者我应该开始使用GPU,因为它更好地处理矩阵操作。如有任何建议/想法,将不胜感激

数据帧操作总是比RDD操作快。考虑到执行器内存大小,既然您是AWS,您可以尝试使用Ganglia监控您的集群,并决定您需要多少RAM和CPU。只是好奇,“GC收集超出了限制。”不会像往常一样影响我。您是以自包含模式还是独立群集模式运行它?如果是这样,我相信,除了执行器内存之外,还有其他因素,最显著的是Java堆大小。此外,对于16gs,您的数据似乎很容易达到OOM。数据帧操作总是比RDD操作快。考虑到执行器内存大小,既然您是AWS,您可以尝试使用Ganglia监控您的集群,并决定您需要多少RAM和CPU。只是好奇,“GC收集超出了限制。”不会像往常一样影响我。您是以自包含模式还是独立群集模式运行它?如果是这样,我相信,除了执行器内存之外,还有其他因素,最显著的是Java堆大小。此外,您的数据似乎很低,可以达到16gs的OOM。