У меня есть небольшой log
фрейм данных, в котором есть метаданные, относящиеся к ETL
, выполненному в данном ноутбуке, ноутбук является частью большого ETL
конвейера, управляемого в Azure DataFactory.
К сожалению, кажется, что Databricks не может вызывать хранимые процедуры, поэтому я вручную добавляю строку с правильными данными в свою таблицу журнала.
однако я не могу определить правильный синтаксис для обновления таблица с заданным набором условий:
оператор, который я использую для добавления одной строки, выглядит следующим образом:
spark_log.write.jdbc(sql_url, 'internal.Job',mode='append')
это работает без проблем, поскольку моя фабрика данных вызывает хранимую процедуру ,
Мне нужно работать с запросом вроде
query = f"""
UPDATE [internal].[Job] SET
[MaxIngestionDate] date {date}
, [DataLakeMetadataRaw] varchar(MAX) NULL
, [DataLakeMetadataCurated] varchar(MAX) NULL
WHERE [IsRunning] = 1
AND [FinishDateTime] IS NULL"""
Возможно ли это? если так, то может кто-нибудь показать мне, как?
Глядя на документацию, это, кажется, упоминает только использование операторов select
с параметром query
:
Целевая база данных - это Azure SQL База данных.
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
просто добавить, что это крошечная операция, поэтому производительность не является проблемой.