如何将R数据帧写入Snowflake数据库表

编程入门 行业动态 更新时间:2024-10-18 08:34:30
本文介绍了如何将R数据帧写入Snowflake数据库表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

有人知道如何将R数据帧写入新的Snowflake数据库表吗?我在R中创建了一个成功的Snowflake ODBC连接,可以成功地从Snowflake查询。连接命令为:conn<;-dbi::dbConnect(odbc::odbc(),"Snowflake")。

现在,我想将在R中创建的一个数据帧作为表写回Snowflake。我使用了以下命令:dbWriteTable(conn,"database ase.schema.tablename",R data frame name)。使用此命令成功连接到Snowflake,但收到以下错误消息:"ERROR in NEW_RESULT(Connection@ptr,Statement):nanodbc/nanodbc.cpp:1344:22000:无法执行CREATE TABLE。此会话没有当前数据库。请调用‘USE DATABASE’,或使用限定名称。"

我在dbWriteTable函数的"database ase.schema.tablename"参数中使用了限定的数据库名称。我不明白如何在我的R函数中使用"use database"。有什么想法吗??谢谢!!

推荐答案

DBI::dbWriteTable(…)的接口要求将文字表名作为字符串传递,或者作为正确引用的标识符传递:

dbWriteTable(conn, name, value, ...)

conn:DBIConnection对象,dbConnect()返回。

name:指定未加引号的DBMS表名的字符串,或dbQuoteIdentifier()调用的结果。

value:data.frame(或强制data.frame)。

dbWriteTable(conn, "database.schema.tablename", R data frame name)

上面的代码将尝试使用与Connection对象关联的数据库和架构上下文创建一个名为的表"database.schema.tablename"。

例如,如果您的连接设置了数据库DB和架构SCH,则将成功创建名为DB.SCH."database.schema.tablename"的表。

若要正确定义数据库、架构和表名,请使用具有正确层次结构顺序的DBI::Id类对象:

table_id <- Id(database="database", schema="schema", table="tablename") dbWriteTable(conn, table_id, R data frame name)

在后台,DBI::dbWriteTable(…)函数通过DBI::dbQuoteIdentifier(…)识别name和converts it into a quoted identifier格式的DBI::Id类参数类型(为方便起见)。

更多推荐

如何将R数据帧写入Snowflake数据库表

本文发布于:2023-10-26 18:39:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1531017.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   数据库   数据   Snowflake

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!