Scala 在spark中并行化和重新分配100万个数字时执行受阻
我是斯卡拉的新手。在这一点上我很固执 参见简单示例: 我有320 gb的RAM和4个节点。但如果我在一百万个数据上执行下面的代码。然后在同一点上执行失败 matchingRowsPOI包含一百万个数字的数组 使用下面的代码,我正在创建配对。比如Scala 在spark中并行化和重新分配100万个数字时执行受阻,scala,hadoop,apache-spark,rdd,Scala,Hadoop,Apache Spark,Rdd,我是斯卡拉的新手。在这一点上我很固执 参见简单示例: 我有320 gb的RAM和4个节点。但如果我在一百万个数据上执行下面的代码。然后在同一点上执行失败 matchingRowsPOI包含一百万个数字的数组 使用下面的代码,我正在创建配对。比如(1,2)、(1,3)(2,3)等等 val totalPairsForDistrict1 = sc.parallelize(matchingRowsPOI,200).flatMap(x => { matchingRowsPOI.filt
(1,2)、(1,3)(2,3)
等等
val totalPairsForDistrict1 = sc.parallelize(matchingRowsPOI,200).flatMap(x => {
matchingRowsPOI.filter(_ > x).map((x, _))
}).repartition(200)
totalPairsForDistrict1 .count
但若我执行这段代码,那个么执行就会在同一个地方停止好几个小时。
我已经在UI上检查过了。它根本不处理。我不明白为什么会这样
是因为内存不足以执行此操作还是什么
请帮帮我
提前谢谢。这对我来说是一个非常关键的问题。有人能解释一下为什么会发生这种情况。根据您的代码,没有实际执行转换的操作。您需要对totalPairsForDistrict1调用一个操作,例如collect、count、saveAsTextFile。@tauitdnmd抱歉,我忘了在代码中添加它。请检查更新的代码。您正在使用带200分区的并行化,然后再次使用可能导致问题的重新分区。请尝试通过删除重新分区来运行。