Вызов хранимой процедуры SQL Server в SparkPython

Программы на Python
Anonymous
Вызов хранимой процедуры SQL Server в Spark

Сообщение Anonymous »

У меня есть хранимая процедура, которую я пытаюсь запустить через Spark. Причина хранения ее как хранимой процедуры заключается в том, что база данных содержит таблицу, которую необходимо обновить. В таблице хранится время последнего выполнения хранимой процедуры.
Я попробовал два следующих способа:
Метод 1:

Код: Выделить всё

from pyspark.sql import SparkSession
from createconnection import sql_connection
from datetime import datetime
import os
import sys
def getdata():
url, uname, pwd = sql_connection()
spark = SparkSession.builder.appName("MyApp").getOrCreate()
try:
jdbcDF = spark.read \
.format("jdbc") \
.option("url", url) \
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver") \
.option("prepareQuery",'EXEC dbo.GetUserDetails') \
.option("query", 'SELECT * FROM @ResultTable') \
.option("user", uname) \
.option("password", pwd) \
.load()
jdbcDF.show()
# Flush the output to ensure it is sent immediately
sys.stdout.flush()
spark.stop()
except ValueError as error:
print("Connector write failed", error)

if __name__ == '__main__':
getdata()
В методе 2 я попробовал .option('query','EXEC dbo.GetUserDetails'), метод 3: я попробовал поместить полная хранимая процедура SQL внутри .option('prepareQuery',sql_stored_procedure_code) \ .option('query','SELECT * FROM @SP_RESULT'). Но, похоже, ничего не работает. Есть ли способ вызвать хранимые процедуры внутри искры?
Я хочу знать, можно ли вообще выполнить хранимую процедуру через искру или ее нужно разбить на несколько операторов sql внутри сценария искры и как это сделать.

Любая помощь или рекомендации приветствуются для решения этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/763 ... e-in-spark

Вернуться в «Python»