Я создал кластер с 1 главным (cluster-m) и двумя рабочими узлами (clus-w-0, clus-w-1) в gcp datapro c. Теперь, используя pyspark rdd, я хочу распределить одну задачу так, чтобы все узлы были вовлечены. Ниже приведен фрагмент моего кода.
def pair_dist(row):
dissimlarity = 0
Z = row[0].split(',')
X = row[1].split(',')
for j in range(len(Z)):
if Z[j] != X[j]:
dissimlarity += 1
return str(dissimlarity) + **os.uname()[1]**
sc = SparkContext.getOrCreate()
rdd = sc.textFile( "input.csv" )
rdd = sc.parallelize(rdd.take(5))
rdd = rdd.cartesian(rdd)
dist = rdd.map(lambda x: pair_dist(x)).collect()
dist = np.array(dist).reshape((5,5))
print(dist)
sc.stop()
Чтобы проверить, правильно ли это произошло, я поставил имя хоста вместе с результатом. Но я всегда получаю имя хоста clus-m , а не имя хоста рабочих узлов.
Вывод: [0clus-m 2clus-m ... ... 1clus-m 0clus-m .......] 5x5
Пожалуйста, предложите, что именно мне нужно сделать?