Pyspark - применить функцию между каждым элементом в RDD и сохранить в новом RDD - PullRequest
0 голосов
/ 02 мая 2019

Я относительно новичок в Pyspark и распределенных вычислениях.

У меня есть список кортежей, хранящихся в RDD.Я хотел бы взять комбинацию с каждым элементом в СДР и вставить их в функцию, которая будет возвращать выходные данные функции, а затем выполнить некоторую описательную статистику (максимум, минимум, среднее, медиана и т. Д.) Для этого окончательного СДР.

Выполнить это локально в Python было бы довольно легко, но у меня возникли проблемы с продумыванием шагов для выполнения этого в распределенном режиме.

myTups = [(a,b),(c,d),(e,f),(g,h)]

output_list = []
for i in range(len(myTups)-1):
    for j in range(i+1, len(myTups)):
        output_list += [myFunc(myTups[i],myTups[j])]

myFunc выводит целое число.С этим списком я буду вычислять max, min и т. Д.

Я думаю, мне нужно начать с создания списка кортежей с mytups.Нужно ли конвертировать мой RDD в RDD для пары, чтобы выполнить это?

[ ((a,b), (c,d)), 
  ((a,b),(e,f)), 
  ((a,b), (g,h)),
  ((c,d),(e,f)), 
  ((c,d), (g,h))
  ((e,f), (g,h))]

Затем используйте map () для выполнения myFunc.

Я на правильном пути или мне следует подуматьделать это по-другому?Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...