r - in_schema 返回 2 的列表而不是 tbl
问题描述
我连接到我们的数据库:
con <- dbConnect(odbc::odbc(), "myHive")
我知道这个骗局正在工作,因为我可以在右上角的连接窗格中看到我们所有的模式。
如果我想选择一个特定的表作为 tbl 我可以去:
mytbl <- tbl(con, in_schema("mydb", "mytable"))
我希望这里的结果是 df 或 tbl 但它是 2 的列表。我试图提取 tbl 部分,但我被这个列表弄糊涂了。
这是str:
> str(mytbl)
List of 2
$ src:List of 2
..$ con :Formal class 'Hive' [package ".GlobalEnv"] with 4 slots
.. .. ..@ ptr :<externalptr>
.. .. ..@ quote : chr "`"
.. .. ..@ info :List of 13
.. .. .. ..$ dbname : chr "HIVE"
.. .. .. ..$ dbms.name : chr "Hive"
.. .. .. ..$ db.version : chr "1.2.2"
.. .. .. ..$ username : chr ""
.. .. .. ..$ host : chr ""
.. .. .. ..$ port : chr ""
.. .. .. ..$ sourcename : chr "gdHive"
.. .. .. ..$ servername : chr "Hive"
.. .. .. ..$ drivername : chr "Hortonworks Hive ODBC Driver"
.. .. .. ..$ odbc.version : chr "03.52"
.. .. .. ..$ driver.version : chr "2.6.1.1001"
.. .. .. ..$ odbcdriver.version : chr "03.80"
.. .. .. ..$ supports.transactions: logi FALSE
.. .. .. ..- attr(*, "class")= chr [1:3] "Hive" "driver_info" "list"
.. .. ..@ encoding: chr ""
..$ disco: NULL
..- attr(*, "class")= chr [1:3] "src_dbi" "src_sql" "src"
$ ops:List of 2
..$ x : 'ident_q' chr "mydb.mytable"
..$ vars: chr [1:188] "zzz1.order_id" "zzz1.row_id" "zzz1.order_ts" "zzz1.order_date" ...
..- attr(*, "class")= chr [1:3] "op_base_remote" "op_base" "op"
- attr(*, "class")= chr [1:4] "tbl_dbi" "tbl_sql" "tbl_lazy" "tbl"
我在这里看什么?如何从 mydb.mytable 获取表作为 tbl?
解决方案
如果您希望将表加载到 R 内存中(而不是远程使用它),请使用mytbl %>% collect()
.
否则,我认为您正在查看的是标准远程表。这不是特别的in_schema
。如果您尝试class(mytbl)
,您应该期望看到"tbl"
它的类之一。
默认情况下,R 不会将远程表中的数据加载到内存中。要查看前几行,请尝试:mytbl %>% head()
。
您可以使用所有标准 dplyr 命令来操作表格。例如:
results = mytbl %>%
rename(new_name = old_name) %>%
mutate(new_col = 2*old_col) %>%
group_by(new_col) %>%
summarise(number = n()) %>%
filter(number > 1000)
然后当你想要 R: 中的结果时results = results %>% collect()
。
推荐阅读
- django - 使 django app_list 可用于所有管理模板
- javascript - 在 gatsby.js 中调用带有注册模块的路由器
- rabbitmq - 站点回收后创建多个消费者。RabbitMq/Masstransit
- sql - 提高 PostgresSQL 聚合查询性能
- java - 应用程序启动时如何使键盘失焦以编辑文本?
- javascript - 选择输入的映射选项的 onChange 事件未定义返回
- python - sort(key=function) 不工作但 sorted(iterable,key=function) 工作
- scala - 如何在结构化查询中使用日期(作为字符串)?
- javascript - 根据 JS 中 html 标记的类和 id(增量)隐藏和显示 div
- python - 如何从数据库中显示一个月的考勤情况?