r - R dbplyr SQL 日期过滤器问题
问题描述
我已使用此处显示的代码连接到 SQL Server 数据库,然后尝试运行查询以收集按日期过滤的数据,该日期以 YYYYMMDD 格式的表中的整数形式保存
con <- DBI::dbConnect(odbc::odbc(), driver = "SQL Server", server = "***")
fact_transaction_line <- tbl(con,in_schema('***', '***'))
data <- fact_transaction_line %>%
filter(key_date_trade == 20200618)
这存储为查询,但是当我使用 glimpse 查看数据时失败,出现以下错误
“dbplyr_031”在
哪里(“key_date_trade”=20200618.0)'
为什么这不起作用,我有更好的方法来格式化查询以获取这些数据吗?
解决方案
fact_transaction_line
在您的示例代码中,两者data
都是远程表。这样做的一个重要后果是,您只能通过某些 dplyr 命令与它们进行交互。glimpse
可能不是远程表支持的命令。
你可以做什么(包括@Bruno的建议):
- 用于
head
查看远程数据的前几行。 - 如果您收到错误,请尝试
show_query(data)
查看远程表的基础 SQL 查询。检查此查询是否正确。 - 使用 .检查远程表的大小
remote_table%>% ungroup() %>% summarise(num = n())
。如果远程表足够小以适合您的本地 R 内存,那么local_table = collect(remote_table)
会将表复制到 R 内存中。 - 组合选项 1 和 3:
local_table = data %>% head(100) %>% collect()
将远程表的前 100 行加载到 R 中。然后你可以glimpse(local_table)
.
推荐阅读
- sustainsys-saml2 - 为什么深度链接在身份验证后不起作用?
- tensorflow - 这是在自定义项目中使用 YOLO 进行图像分类的正确方法吗?
- python - 将opencv帧写入HLS段文件时出错
- python - 如何在所有公会中向特定频道广播消息?
- sql - 如何返回没有活动位置的记录
- javascript - Next.js 9.3+ 和包罗万象的路线
- node.js - 保存 JSON 数据时出错 - NodeJS Express
- stripe-payments - 条纹,从客户转移到我们的帐户
- python - 为什么 SQL 会插入不正确的值?
- windows - Windows 应用程序的内存消耗