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

如何从R向Databricks Catalog写入Delta表?

解决sparklyr写入Databricks Catalog Delta表的问题

以下几种方法可以实现从远程RStudio通过sparklyr写入Databricks Catalog中的Delta表:

  • 方法1:使用DBI接口的dbWriteTable()指定完整三级命名
    sparklyr兼容DBI操作,直接用catalog.schema.table的完整格式作为表名即可,无需额外参数:

    library(sparklyr)
    library(DBI)
    
    # 假设已建立spark连接sc
    dbWriteTable(
      sc,
      name = "my_catalog.my_schema.my_table",
      value = your_data_frame,
      overwrite = TRUE,
      format = "delta"
    )
    
  • 方法2:切换当前Catalog和Schema后用sdf_copy_to()
    先通过Spark会话设置默认的Catalog和Schema,之后sdf_copy_to()会自动写入对应位置:

    library(sparklyr)
    
    sc <- spark_connect(...) # 你的连接代码
    
    # 设置默认Catalog和Schema
    spark_session(sc) %>% 
      invoke("sql", "USE CATALOG my_catalog") %>% 
      invoke("sql", "USE SCHEMA my_schema")
    
    # 写入表,此时无需指定in_catalog参数
    sdf_copy_to(
      sc,
      your_data_frame,
      name = "my_table",
      overwrite = TRUE,
      format = "delta"
    )
    
  • 方法3:使用spark_write_delta()(需安装delta包)
    若安装了delta包,可直接指定Catalog中表的路径完成写入:

    library(sparklyr)
    library(delta)
    
    sc <- spark_connect(...)
    
    spark_write_delta(
      your_data_frame,
      path = "dbfs:/user/hive/warehouse/my_catalog.db/my_schema/my_table",
      mode = "overwrite"
    )
    

注意:确保Databricks-Connect版本与集群版本匹配,且连接用户拥有对应Catalog和Schema的写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:23:10