我在使用 python 的 Spark 中进行以下地图减少练习时遇到问题。我的 map 函数返回以下 RDD。
rdd = [(3, ({0: [2], 1: [5], 3: [1]}, set([2]))),
(3, ({0: [4], 1: [ 3], 3: [5]}, set([1]))),
(1, ({0: [4, 5], 1: [2]}, set([3)))]
我写了一个 reducer 函数,它应该对具有相同键的元组进行一些计算(在前面的示例中,前两个键 = 3,最后一个键是 1)
def Reducer(k, v):
cluster = k[0]
rows = [k[1], v[1]]
g_p = {}
I_p = set()
for g, I in rows:
g_p = CombineStatistics(g_p, g)
I_p = I_p.union(I)
return (cluster, [g_p, I_p])
问题是我期望 k 和 v 将始终具有相同的密钥(即k[0]==v[0]
)。但这段代码并非如此。
我在 Databricks 平台上工作,老实说,无法调试是一场噩梦,有时甚至无法“打印”工作。在这种环境下工作真的很令人沮丧。