#pyspark
Вопрос:
У меня есть следующие 2 файла PySpark, и я хочу импортировать переменную из файла A в файл B. Однако в файле B переменная пуста.
Я прочитал несколько других сообщений, где требовалось добавить «глобальный» перед переменной, но я думаю, что у меня что-то не в том месте. Я пробовал это внутри и вне функции.
Вопрос: Правильно ли я использовал код для импорта и определения глобальных переменных?
У меня есть 2 переменные, которые я импортирую agg_fields (не работает) и key_fields (работает). Я делаю что-то неправильно для agg_fields?
Файл_А
from transforms.api import transform_df, Input, Output
agg_fields = [] # works in this file but is empty when imported to another file
key_fields = ["Key_Col_A", "Key_Col_B"] # works in this file and also when imported to another file
@transform_df(
Output("ABC"),
test=Input("test")
)
def myfunction(test):
global agg_fields
for column, type in test.dtypes:
if type == "double":
agg_fields.append(column)
return test.select(*agg_fields) # works
Файл_В
from transforms.api import transform_df, Input, Output
from File_A import key_fields, agg_fields
@transform_df(
Output("DEF"),
ABC=Input("ABC")
)
def myfunction(ABC):
return ABC.select(*agg_fields) # error is return as it thinks agg_fields is empty