spark-submit зависает после добавления --py-файлов - PullRequest
0 голосов
/ 13 октября 2019

У меня есть скрипт, который работал нормально. Скрипт имеет некоторый 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?

...