pyspark записывает df на SQL сервер со схемой - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно записать фрейм данных Spark на SQL сервер, но не на базу данных схемы.

Я написал следующую функцию, которая должна выполнять фактическую работу:

def write_df_to_db(df, dbtable):
    df.repartition(1).write.format('jdbc').options(url='jdbc:sqlserver://'+host,
            driver='com.microsoft.sqlserver.jdbc.SQLServerDriver',
            dbtable=dbtable,
            user=user,
            password=pw).mode('overwrite').save()


# the following table is supposed to be written to the SQL Server
tables = [('source_table_name', 'schemaname.target_table_name')]

for table_name in tables:
    source_table = table_name[0]
    target_table = table_name[1]

# read from S3
df = glueContext.create_dynamic_frame.from_catalog(database = "glue_database_xyz", table_name = source_table).toDF()

# write to MS SQL Server
write_df_to_db(df, target_table)

Возвращаются следующие ошибки.

write_df_to_db (df, target_table_db)) ^ SyntaxError: недопустимый синтаксис

Во время обработки вышеуказанного исключения возникло другое исключение: Traceback (большинство последний вызов последний):

Файл «runscript3.py», строка 86, в

, а «runpy.py» в new_stack.tb_frame.f_code.co_filename:

AttributeError: объект 'NoneType' не имеет атрибута 'tb_frame'

Заранее большое спасибо.

...