В scala r => r.getString
- анонимная функция, также называемая лямбда-функцией.Одна проблема с вашим кодом заключается в том, что вы используете лямбда-синтаксис Scala, а не Python.Эквивалентная лямбда в python будет: lambda r: r.getString(0)
, при условии, что r
имеет метод .getString
.
Точно так же в scala _.
является сокращением для лямбды, где вы используете переменную только один раз, но этоэквивалентен вышеуказанному стилю r=>r.
.Насколько мне известно, в Python такого сокращения нет, поэтому вы просто будете использовать обычную лямбду, как указано выше.
Код в python будет примерно равен:
result_lst = df.rdd.map(lambda r: r.getString(0)).collect.toList.flatMap(lambda x: x.split(",")).filter(lambda p: not p.contains(primaryKey))