#apache-spark #pyspark #rdd
Вопрос:
В настоящее время у меня есть эта строка для фильтрации и применения функции к RDD.
data_to_update.rdd.map(find_differences).filter(lambda row: bool(row))
Я хочу изменить find_differences
функцию, чтобы она также принимала другой аргумент unique_id
в дополнение к row
. Я не совсем уверен, как изменить эту строку, чтобы сделать это, или есть ли лучший способ написать ее.
Комментарии:
1. Использовать операции сгиба?
Ответ №1:
Предполагая, что ваша текущая функция выглядит примерно так:
def find_differences(row):
# do something
return result
Вы можете создать новую функцию и частичную функцию, соответствующую вашей исходной функции:
from functools import partial
def find_differences_id(unique_id, row):
# do something else
return another_result
find_differences = partial(find_differences_id, unique_id)
И нанесите на карту RDD, как вы делали это раньше.