我正在尝试从airflow使用jdbc连接到databricks。基本上,其目的是查询delta lake表,该表已在databricks中注册为非托管表
我做了以下工作。
阅读并点击此处链接
2从databricks下载了jdbc驱动程序,基本上就是jar文件sparkjdbc42.jar。三。使用以下设置在airflow中设置jdbc连接
Connection url: jdbc:spark://xxxx.azuredatabricks.net:443/default;transportMode=http;ssl=true;httpPath=sql/protocolvl/o/workspaceid/clusterid
Login: token
Password: <token generated from Databricks>
Driver Path: /usr/local/airflow-dags/SparkJDBC42.jar (where I copied the jar after downloading from databricks)
Driver Class: com.simba.spark.jdbc42.Driver
然后在气流中
from airflow.hooks.jdbc_hook import JdbcHook
hh = JdbcHook(jdbc_conn_id='hiveconn')
sql = """select data from tablename"""
result=hh.get_records(sql=sql)
但我一直在犯错
Java.Lang.NoclassDefFoundError: com/simba/spark/jdbc42.Driver
我也尝试过使用jaydebeapi和pyhs2,但是没有效果
conn = jaydebeapi.connect(jclassname=jdbc_driver_name,
url=str(host),
driver_args=[str(login), str(psw)],
jars=jdbc_driver_loc)
我已经尝试将path和classpath变量设置为jar所在的位置(复制下载jar的路径)。不过,这是linux(因为)
我错过了什么?
如果需要的话,我可以提供更多的细节。
暂无答案!
目前还没有任何答案,快来回答吧!