У меня есть скрипт, который работал нормально. Скрипт имеет некоторый UDF и в конце сохраняет данные в таблицу Hive. Затем я попытался модулировать скрипт, поместив функцию UDF в другой скрипт в другую папку. После этого началось получение ошибки модуля не существует. затем попытался упаковать модуль и передать его с помощью --py-files. Но после этого скрипт зависает навсегда. Если код вставлен в строку вместо модуля, то все работает нормально. Структура папок выглядит как
application
utils
src
utility.py
component
src
main_Script.py
В main_script.py у меня есть
import utils.src.utility as local_util
utility.py, где udf func похож на
@func.udf("string")
def some_function:
...
..
return 'xyz'
в основном
много операций и затем
from spark.sql import function as func
def main(df):
df = df.withColumn('col1', local_utils.some_function(func.col('col2')))
, затем df сохраняется в таблице кустов. скрипт выполняется так, как \
spark-submit --queue xxx master yarn main.py
получает ошибку, что утилита модуля не существует
при проверке документации, которую он предлагает упаковать, утилиты и передать ее как --py-files
поэтому я заархивировал утилиты и затем передал их
spark-submit --queue xxx master yarn --py-files utils.zip main.py
при выполнении этой работы зависает навсегда
если я поместил код утилиты в строку в main.py, а затем запустил, то все работает нормально.
, поэтому хотел узнать, что не так, используя --py-files?