Size: a a a

2020 May 20

AA

Anton Alekseev in Moscow Spark
то есть если в udf и pudf используются библиотеки, которые уже были установлены на все машинки, и ничего из py-files, то ничего дополнительно подключать не нужно, и например для режима клиента, мы зря разлили py-files? И как по коду в функции становится понятно какие импорты необходимы предустановленных модулей? Например хотим сделать np.sum(x), если нампи стоит, то все исполнится, но кто импортнет модуль?
источник

ЕГ

Евгений Глотов... in Moscow Spark
Внутри pd_udf надо импортнуть
источник

ЕГ

Евгений Глотов... in Moscow Spark
Когда все либы есть на нодах в нужном питоне, это самый оптимальный вариант
источник

ЕГ

Евгений Глотов... in Moscow Spark
Не всё можно через py-files развернуть
источник

ЕГ

Евгений Глотов... in Moscow Spark
Можно прям из юдфки сделать пип инсталл, потом импортлибом импортнуть)
источник

AA

Anton Alekseev in Moscow Spark
Так вот, все прекрасно без импортов внутри pudf работает, импортов глобально вначале файла, как обычно, достаточно, и кластер полноценно работает, непонятно😔
источник

ЕГ

Евгений Глотов... in Moscow Spark
Чаще всего это заканчивается no module named <...> на проде😐
источник

ЕГ

Евгений Глотов... in Moscow Spark
Когда работник уже уволился)
источник

AA

Anton Alekseev in Moscow Spark
Оо, есть такая проблема с импортом на одном из кластеров. То есть импорт внутри udf и pudf должен вылечить это?😐 Окей, попробуем.
источник

ЕГ

Евгений Глотов... in Moscow Spark
И установка либ
источник

ЕГ

Евгений Глотов... in Moscow Spark
Или pyspark virtualenv
источник

AA

Anton Alekseev in Moscow Spark
Так установка либ при деплое идет. Или вы про py-files?
источник

ЕГ

Евгений Глотов... in Moscow Spark
Я про то, чтобы нумпай и пандас был одинаковой версии на эджноде и на датанодах
источник

ЕГ

Евгений Глотов... in Moscow Spark
Пайэрроу, и т д
источник

ЕГ

Евгений Глотов... in Moscow Spark
Например у меня не взлетает пока pyarrow > 0.11.1, в каждой новой версии какие-то баги, простейшие pd_udf не отбегают
источник

AA

Anton Alekseev in Moscow Spark
Евгений Глотов
Чаще всего это заканчивается no module named <...> на проде😐
Я так и не понял как это технически реализовано, книжечки не будет с такими деталями?:)
источник

ЕГ

Евгений Глотов... in Moscow Spark
Anton Alekseev
Я так и не понял как это технически реализовано, книжечки не будет с такими деталями?:)
Кроме гитхаба по этому функционалу нет ничего, к сожалению😐
источник

AA

Anton Alekseev in Moscow Spark
Окей, буду ковырять, спасибо.
источник

R

Renarde in Moscow Spark
Anton Alekseev
то есть если в udf и pudf используются библиотеки, которые уже были установлены на все машинки, и ничего из py-files, то ничего дополнительно подключать не нужно, и например для режима клиента, мы зря разлили py-files? И как по коду в функции становится понятно какие импорты необходимы предустановленных модулей? Например хотим сделать np.sum(x), если нампи стоит, то все исполнится, но кто импортнет модуль?
важно чтобы PYSPARK_PYTHON путь был одинаковый на всех машинах, и он везде указывал на одинаковый Python. Бывает так, что на драйвере вы смотрите на условный /opt/conda/my_lovely_env, а на worker - на /usr/bin/python
источник

ЕГ

Евгений Глотов... in Moscow Spark
Renarde
важно чтобы PYSPARK_PYTHON путь был одинаковый на всех машинах, и он везде указывал на одинаковый Python. Бывает так, что на драйвере вы смотрите на условный /opt/conda/my_lovely_env, а на worker - на /usr/bin/python
А в /usr/bin/python3 стоит питон 2
источник