jdbc从aifflow连接到databricks非托管delta-lake表

6rqinv9w  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(357)

我正在尝试从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(因为)
我错过了什么?
如果需要的话,我可以提供更多的细节。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题