我有一个相当长且令人费解的查询,我将其作为进行一些分析的起点。我已经使用dbplyr从头开始复制了这个谓词,所以我可以使用dplyr谓词,而无需将数据库放入内存。如何在不使用dbplyr复制启动查询的情况下实现这一点?
发布于 2020-12-06 13:56:33
看看this answer。它显式地设置dbplyr表的SQL查询。您可以使用相同的想法:
# read file containing existing query
start_query = your_favorite_way_to_read_file_here(file_name)
# create connection
con = DBI::dbConnect(...)
# initial table
my_table = tbl(con, sql(start_query))要验证它是否如预期的那样工作,请尝试show_query(my_table)或head(my_table)。
请注意,dbplyr不会将dplyr转换为高度优化的查询。因此,如果您的初始查询复杂/运行缓慢,那么通过dbplyr添加进一步的操作可能会导致性能低下。在这种情况下,最好将复杂的查询写到另一个表中。
https://stackoverflow.com/questions/64896110
复制相似问题