Ответ 1
-
Вы можете использовать анонимную функцию либо непосредственно в
flatMap
json_data_rdd.flatMap(lambda j: processDataLine(j, arg1, arg2))
или карри
processDataLine
f = lambda j: processDataLine(dataline, arg1, arg2) json_data_rdd.flatMap(f)
-
Вы можете сгенерировать
processDataLine
следующим образом:def processDataLine(arg1, arg2): def _processDataLine(dataline): return ... # Do something with dataline, arg1, arg2 return _processDataLine json_data_rdd.flatMap(processDataLine(arg1, arg2))
-
toolz
библиотека предоставляет полезныйcurry
decorator:from toolz.functoolz import curry @curry def processDataLine(arg1, arg2, dataline): return ... # Do something with dataline, arg1, arg2 json_data_rdd.flatMap(processDataLine(arg1, arg2))
Обратите внимание, что я нажал аргумент
dataline
на последнюю позицию. Это не требуется, но таким образом нам не нужно использовать ключевые слова args. -
Наконец, есть
functools.partial
, уже упомянутый Avihoo Mamka в комментариях.