Python を使用した Spark での次の map reduce の演習で問題が発生しています。私の 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]}, セット([3)))]
同じキーを持つタプルでいくつかの計算を行うことになっているレデューサー関数を作成しました (前の例では、最初の 2 つのキー = 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 プラットフォームに取り組んでいますが、正直なところ、デバッグできないことは悪夢であり、「印刷」が機能しないこともあります。この環境で仕事をするのは本当にイライラします。