Я должен взять два предложения сходства после сокращения.
Предыдущая группа шагов по префиксу выполнена, ввод :
<<strong> ключ (префикс), значение (RID, предложение) >
показано как:
[('w11293',0,
['w11293',
'w11297',
'w10522',
'w11264',
'w9820',
'w11297',
'w11117',
'w11296',
'w11297',
'w11186']),
('w11297',
0,
['w11293',
'w11297',
'w10522',
'w11264',
'w9820',
'w11297',
'w11117',
'w11296',
'w11297',
'w11186']),
('w10522',
0,
['w11293',
'w11297',
'w10522',
'w11264',
'w9820',
'w11297',
'w11117',
'w11296',
'w11297',
'w11186']),
('w11296',
1,
['w11296',
'w11297',
'w11186',
'w11271',
'w11044',
'w9079',
'w11296',
'w9277',
'w11296',
'w10783',
'w11271',
'w11258',
'w11297',
'w11087',
'w11295',
'w11297',
'w10356',
'w11296',
'w11297',
'w11042',
'w11295',
'w11264',
'w10416',
'w11258',
'w11297',
'w11087',
'w11295',
'w11297',
'w11010']),
('w11297',
1,
['w11296',
'w11297',
'w11186',
'w11271',
'w11044',
'w9079',
'w11296',
'w9277',
'w11296',
'w10783',
'w11271',
'w11258',
'w11297',
'w11087',
'w11295',
'w11297',
'w10356',
'w11296',
'w11297',
'w11042',
'w11295',
'w11264',
'w10416',
'w11258',
'w11297',
'w11087',
'w11295',
'w11297',
'w11010'])]
Выход должен быть :
(префикс RID1. RID2, сходство)
как использовать функцию reduceByKey()
или reduce()
получить сходство в pyspark?
Мы опробовали reduceByKey()
функцию следующим образом:
BasicKernel = prefix_filtered_rdd.reduceByKey(lambda x, y: Jaccard(x[1], y[1]))
Jaccard разработан следующим образом:
def Jaccard(x, y):
x_list = x[1]
y_list = y[1]
overlap_number = [word for word in x_list if word in y_list ]
simliarity = len(overlap_number)/(len(x_list) + len(y_list) - len(overlap_number))
return (x[0], y[0], simliarity)
, но возвращаемая ошибка отображается как: TypeError: 'int' object is not iterable
Имеется очевидное неправильное использование грамматики, но у меня есть нет идеи о том, как спроектировать эту функцию уменьшения сходства, если у вас есть идеи о том, как решить эту проблему, пожалуйста, поделитесь ей, большое спасибо.
Мы пытаемся выполнить эту работу: https://github.com/TonyApuzzo/fuzzyjoin также отображается как https://github.com/wjcquking/fuzzyjoin-hadop/tree/master/fuzzyjoin-hadoop