问题标签 [dbplyr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R:dbplyr:postgres:如何在表上创建索引
一个用户有一个大表(超过 3 亿行)。为了加快接下来几个月的查询,必须在远程数据库上创建索引。
假设有一个名为的连接conn
- 创建索引并使其在与数据库断开连接后持久存在的最佳方法是什么。
例如,
上面的代码似乎可以工作,但是如何以某种方式验证索引(确保它确实存在并加快未来的查询)?换句话说 - 用户如何检查索引的存在?另外,我是否需要以某种方式发出 COMMIT 命令?
sql - 使用带有 dbplyr 的 sample_n() 随机抽样数据库
是否可以使用 dplyr::sample_n() 之类的函数从数据库中选择随机(或伪随机)子集,但在 dbplyr 或另一个运行 SQL 查询的 R 包中?
目的是在从数据库运行耗时的数据提取之前测试小批量的查询。
sqlite - 使用 'first()' 对分组数据库列进行变异,而无需先收集()
如果不使用 `collect()' 函数,我的代码会出错
错误:
我希望获取时间戳列并将其从每个航班的零开始进行绘图。如果我在注释中添加,collect()
该函数在将数据导入 R 时起作用。这在管道中非常早期,并且对我来说有很大的开销,因为数据库是 80Gb。
我有什么选择?
我可以使用其他一些函数来获得与从这 2 个突变中获得的结果相同的结果吗?(也许是动物园里的东西?)
我应该从 SQLite 转移到其他支持的数据库
first_value()
吗???
r - dplyr/dbplyr:sql 表 vs df 速度
我目前正在用dplyr编写一个函数来进行计算。当我输入一个tbl_sql对象时,该函数变得非常慢,但当我输入一个data.frame时却相当快。
一个例子,
system.time(f(df))
不到 1 秒。(数据帧)
system.time(f(dfdb))
大约需要 2 秒。(tbl_sql)
我当前的函数更长,输入的数据也更大,(data.frame)结果比(tbl_sql)对象快10倍以上。
这是为什么?谁能解释一下。
r - dbplyr in_schema() 函数行为异常
我正在使用包中的in_schema()
函数dbplyr
在 R 的 postgresql 数据库的命名模式中创建一个表。
它不是一段新代码,它曾经按预期工作=在模式“my_schema”中创建一个名为“my_table”的表。
这段代码现在出现了问题,并且意外地开始在我的数据库的默认公共方案中创建一个名为“my_scheme.my_table”的表,而不是预期的 my_schema.my_table。
有没有其他人注意到这种行为,是否有解决方案(使用默认的 postgresql 方案除外,这在我的情况下不实用)?
r - 根据 2 个远程数据库表的条件创建新变量
我的 PostgreSQL 数据库中有两个单独的表:
我想创建一个像这样的新变量:
但我收到一条与table_b$a
mysql - R dbplyr WHERE 子句 cp1250 字符集
所以我的 R 使用 cp1250 字符集,sessionInfo()
输出:
现在我想使用dbplyr
包使用 MySQL 数据库。首先,当我连接到数据库时,我发送以下 mysql 查询:
然后当我像这样发送 SELECT 语句时:
它返回我 0 行。但!当我将字符串的字符编码设置'Hodgkinův lymfom'
为 UTF-8 时,它会返回所有相关行。我将字符编码设置为 UTF-8,如下所示:
x
然后,当我将变量放入 WHERE 子句时,SELECT 语句如下所示:
尽管事务的编码是 cp1250,但它可以使用 UTF-8 而不是 cp1250。
顺便说一句,当我使用 执行以下 SELECT 语句时SET NAMES 'cp1250'
,行中的返回值会正确显示:
关于什么可能是错的任何想法?
r - Joining across databases with dbplyr
I am working with database tables with dbplyr
I have a local table and want to join it with a large (150m rows) table on the database
The database PRODUCTION
is read only
I also have a local table, let's call it orders
let's say I wanted to join these two tables, I get the following error:
The issue is, if I were to set copy = TRUE
, it would try to download the whole of order_line
and my computer would quickly run out of memory
Another option could be to upload the orders
table to the database. The issue here is that the PRODUCTION
database is read only - I would have to upload to a different database. Trying to copy across databases in dbplyr results in the same error.
The only solution I have found is to upload into the writable database and use sql to join them, which is far from ideal
r - dbplyr 中使用列表列表的复杂过滤器语句
在 SQL 中,您可以编写如下语句:
这意味着抓取所有行,其中 (var1 == "var1-1" and var2 == "var2-1" and var3 == "var3-1" and var4 == "var4-1") or (var1 == " var1-2" 和 var2 == "var2-2" 和 var3 == "var3-2" 和 var4 == "var4-2")
有没有办法以编程方式在 dbplyr 中进行类似的查询?
例如,假设我有一个小标题:
是否有某种函数可以让 dbplyr 构建一个像上面那样的 SQL 语句?