Мне нужно записать фрейм данных 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'
Заранее большое спасибо.