【问题标题】:Placing R dataframe in RODBC/RMySQL/redshift query在 RODBC/RMySQL/redshift 查询中放置 R 数据框
【发布时间】:2015-11-08 19:47:07
【问题描述】:

我在 R 中有一个数据框,它有大约 100k 个 ID。我想将这些 ID 放置在使用 R 包 RODBC、MYSQL 和 redshift 将 R 连接到 Oracle、MySQL 和 redshift 表的查询中。

例如,

output <- dbGetQuery(conn,paste("select * from redshift_table 
where ID in (select ID from df"))

当您只有几个 ID 但我的 ID 列表非常大并且我认为粘贴不起作用时,我已经看到了一些使用粘贴功能的解决方案。

如何将我的 R 数据框与 R 中的这些外部数据库连接起来?我不想在我的外部数据库中创建临时表。

提前致谢!

【问题讨论】:

  • 我怀疑没有其他选择。过滤要么发生在 db 中,要么发生在 R 中,这将涉及将所有数据放在这两个位置之一。粘贴选项不起作用,因为数据库将有一个最大数量的项目,您可以在 IN 子句中放入。
  • 上传到临时表并对其进行半联接
  • 嗨哈德利。谢谢您的答复。您是说将 redshift 表或 df 上传到临时表中吗?在哪里?进入红移或R?我的 redshift 表很大,因此将所有这些都加载到 R 中可能不可行。

标签: r join rodbc rmysql


【解决方案1】:

至少为 MySQL-DB 包 dplyr 带来了一个解决方案:

library(dplyr)
mysql_table <- tbl(myDB, "mysql_table")

mysqltable %>%
    semi_join(df)

此软件包不支持其他两个数据库,但欢迎您为其他数据库系统实现后端;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多