Как сделать и эффективно запустить «пустую» пользовательскую функцию PySpark (UDF), которая ничего не возвращает? - PullRequest
0 голосов
/ 17 января 2019

Учитывая доступные методы для указания пользовательских функций в PySpark:

  • Нестандартные пользовательские функции PySpark
  • Панды UDF, использующие Apache Arrow

Как можно создать и запустить на фрейме данных пользовательскую функцию, которая ничего не возвращает, не создавая новый столбец?

Пример: скажем, вы хотели распараллелить загрузку столбца данных в какое-то внешнее хранилище сохраняемости. То есть вместо записи всего кадра данных в HDFS, используйте одно поле в качестве ключа, а другое - в качестве значения для передачи построчно в хранилище BLOB-объектов, например s3.

1 Ответ

0 голосов
/ 17 января 2019

В таком случае вы бы вообще не использовали UDF.Там не подходит для этой задачи по ряду причин.Вместо этого вы просто используете foreach

foreach(f)

Применяет функцию f ко всем строкам этого DataFrame.

или foreachPartition

foreachPartition(f)

Применяет функцию f к каждому разделу этого DataFrame.

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