- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我尝试使用以下方法将数据从 mongodb 导入到 r:
mongo.find.all(mongo, namespace, query=query,
fields= list('_id'= 0, 'entityEventName'= 1, context= 1, 'startTime'=1 ), data.frame= T)
该命令适用于小型数据集,但我想导入 1,000,000 个文档。
使用 system.time 并在命令中添加 limit= X,我将时间作为要导入的数据的函数进行测量:
system.time(mongo.find.all(mongo, namespace, query=query ,
fields= list('_id'= 0, 'entityEventName'= 1, context= 1, 'startTime'=1 ),
limit= 10000, data.frame= T))
结果:
Data Size Time
1 0.02
100 0.29
1000 2.51
5000 16.47
10000 20.41
50000 193.36
100000 743.74
200000 2828.33
在绘制数据后,我相信:导入时间 = f(Data^2)
时间 = -138.3643 + 0.0067807*数据大小 + 6.773e-8*(数据大小-45762.6)^2
R^2 = 0.999997
谢谢!
最佳答案
lm
很酷,但我认为如果您尝试添加 power 3,4,5, ... 功能,您也会收到很棒的 R^2 =) 你过拟合= )
R 的一个已知缺点是您无法有效地将元素附加到 vector
(或 list
)。添加元素会触发整个对象的复制。在这里你可以看到这个效果的导数。通常,当您从 mongodb 获取数据时,您事先并不知道结果的大小。您遍历游标并增加结果列表。在旧版本中,由于上述 R 的行为,此过程非常慢。在this pull之后性能变得更好。environment
的技巧有很大帮助,但它仍然不如预分配列表快。
但是我们可以做得更好吗?是的。
1) 只允许用户指定结果的大小和预分配列表。如果将 limit=
传递给 mongo.find.all
,则自动执行此操作。我 filled issue对于此增强功能。
2) 在C
代码中构造结果。
如果事先知道数据的大小,您可以:
cursor <- mongo.find(mongo, namespace, query=query, fields= list('_id'= 0, 'entityEventName'= 1, context= 1, 'startTime'=1 ))
result_lst <- vector('list', NUMBER_OF_RECORDS)
i <- 1
while (mongo.cursor.next(cursor)) {
result_lst[[i]] <- mongo.bson.to.list(mongo.cursor.value(cursor))
i <- i + 1
}
result_dt <- data.table::rbindlist(result_lst)
关于r - 长时间使用 mongo.find.all (rmongodb) 导入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31851640/
我正在努力在 R 和 rmongodb 中使用 $or 创建查询。我想模拟的是来自 cmdline mongo 的这个: db.people.find( { $or : [ {"person.cell
我正在尝试通过 rmongodb 中的操作在组中执行求和。我求和的“列”包含 NaN 值,导致我的总和返回 NaN。在通过命令运行组之前,我想使用 $project 用零替换 NaN,但我被卡住了。
当使用 rmongodb 时,您将如何处理 MongoDB 查询的结果集(长度 > 1)包,什么时候你的最终对象应该是一个 list? 我尽量避免 R 典型的“按值传递”复制效率低下,这种情况在单步执
我正在使用 rmongodb 来获取特定集合中的每个文档。它可以工作,但我正在处理数百万个小文档,可能是 100M 或更多。我正在使用作者在网站上建议的方法:cnub.org/rmongodb.ash
我正在使用R和rmongodb从MongoDB NoSQL数据库中提取数据。我输入了try()逻辑来捕获由不良数据引起的问题。在大多数情况下,try()会捕获错误并跳过错误的数据对象。但是有时,它“无
我在理解如何更新子文档(相对于整个子文档)的特定字段时遇到了一些问题。 我似乎已经理解了如何查询子文档中的某些字段值,但我不知道如何构造一个 BSON 文档来只更改查询的字段。 仍然觉得我没有完全理解
我正在构建一个R 脚本,我需要在其中通过身份验证连接到MongoDB 并使用 rmongodb 处理从数据库中获取的数据。 包。为此,我在 3.0.4 版 中创建了一个新的 MongoDB 用户,并且
我偶然发现了一些关于函数处理更新 (mongo.update()) 的问题。 免责声明 因为我还在熟悉这两个 MongoDB和 rmongodb包,图示的问题很可能都是由于我缺乏知识;-) 准备工作
我在 Ubuntu 14.04.1 中安装了 R 3.02。我尝试使用以下命令安装 rmongodb 包 install.packages("rmongodb") 我得到的回应是: > install
这是你在 mongo shell 中得到的: db.col.find(ObjectId("5571849db1969e0a6eb32731")).pretty() { "_id" : Object
我尝试使用以下方法将数据从 mongodb 导入到 r: mongo.find.all(mongo, namespace, query=query, fields= list('_id'= 0, 'e
我正在尝试将 mongo 集合转换为 R 数据框。我正在使用 rmongodb 包来做同样的事情。我遇到了数据类型为“ObjectId”的字段的问题(在下面的代码中,“_id”列),rmongodb
我正在尝试从 rmongodb 访问 mongodb 聚合框架。它应该可以通过 mongo.command() 获得,但我无法获得正确的 bson。 这是一个可复制的例子。在 R 中,设置测试集合:
由于 MySQL 让我发疯,我正试图让自己熟悉我的第一个“NoSQL”DBMS,它恰好是 MongoDB .我通过 rmongodb 连接到它. 我玩的越多rmongodb ,关于运行高级查询的问题/
当尝试使用 rmongodb 和 plyr 包将数据帧从 MongoDB 传输到 R 时,我得到了一些关于巨大集合集的奇怪结果。我从有关该主题的各种 github 和论坛中获取这段代码,并根据我的目的
我是一名优秀的程序员,十分优秀!