问题1:我有一段代码在spark deploy模式下运行时运行良好:client,但在集群模式下运行同一代码时抛出异常。关于这个问题,我考虑了很多问题,但没有找到解决办法
我使用的是python3.7,spark2.4
我的猜测:在客户端模式下运行时,驱动程序可以使用sql server的odbc驱动程序13,但在运行时执行程序中没有相同的驱动程序,如果我的猜测正确,如何使驱动程序对执行程序可用?
代码:
import pyodbc
def get_sql_server_connection():
try:
user_id = "app_server"
hostname = "hdp-host1"
conn_driver = "ODBC Driver 13 for SQL Server"
database = "sales"
password = "pass1"
conn = pyodbc.connect('DRIVER={%s};SERVER=%s;UID=%s;PWD=%s') % (
conn_driver, hostname, database, user_id, password
)
return conn
except Exception as e:
print("Exception occured while establishing connection to SQL SERVER. stacktrace: \n{}".format(e))
错误:
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")
问题2:如何获取它搜索此驱动程序的路径?
问题3:如果可能的话,我如何在spark submit中显式地传递驱动程序?
暂无答案!
目前还没有任何答案,快来回答吧!