You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何没有面向Databricks的Spark连接器?需外部Spark读取其数据

在Databricks外部通过Spark读取数据的可行方案

不需要专门的“Databricks Spark连接器”,以下几种官方支持的方式可以实现类似Snowflake Connector的效果:

  • 连接Databricks元存储(Unity Catalog/Metastore)
    配置外部Spark的hive.metastore.uris参数,直接对接Databricks的元存储,之后就能像访问Hive表一样读取Databricks中的表数据。示例配置:

    spark.conf.set("hive.metastore.uris", "thrift://<databricks-metastore-host>:9083")
    

    读取表的方式:spark.sql("SELECT * FROM catalog.schema.target_table")
    注意:需要确保外部Spark集群能访问到Databricks元存储的网络地址。

  • 使用Delta Lake原生库读取
    如果Databricks中的数据是Delta Lake格式,直接在外部Spark中引入Delta Lake依赖,即可读取Delta表。示例代码:

    import io.delta.tables._
    val deltaTable = DeltaTable.forPath(spark, "s3://your-databricks-storage/path/to/delta-table")
    deltaTable.toDF.show()
    

    注意:需要保证外部Spark集群能访问存储Delta表的云存储(S3/ADLS/GCS),并拥有对应读写权限。

  • 通过JDBC连接Databricks SQL端点
    用Spark的JDBC连接器对接Databricks SQL端点,像连接普通数据库一样读取数据。示例代码:

    val df = spark.read
      .format("jdbc")
      .option("url", "jdbc:databricks://<workspace-url>:443/default;transportMode=http;ssl=1;httpPath=/sql/1.0/endpoints/<endpoint-id>")
      .option("dbtable", "catalog.schema.target_table")
      .option("user", "<databricks-personal-token>")
      .option("password", "<databricks-personal-token>")
      .load()
    

    这里的token需使用Databricks个人访问令牌,同时要确保外部网络能访问到Databricks SQL端点。

内容的提问来源于stack exchange,提问作者Haojin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:40:46