代码之家  ›  专栏  ›  技术社区  ›  Rookatu

数据库与数据中唯一的性能。桌子

  •  1
  • Rookatu  · 技术社区  · 6 年前

    我有一个相当大的数据集(470万行和42个变量)。当我试图将其保存到正在使用的共享驱动器时 saveRDS Windows会抛出错误消息,但较小的数据集保存时不会出现问题。为了回应这个问题,我决定规范化我的数据,并保存相关维度和事实数据。

    在提取定义数据的一个维度的列之后,我的下一步是使用 unique ,但执行

    dim_data <- unique(dim_data)
    

    导致会话挂起很长时间,然后返回错误消息

    错误:内存耗尽(达到限制?)

    wrapup期间出错:无法分配大小为127.6 Mb的向量

    (我的机器有16 GB内存)。

    在尝试之前,我和它搏斗了一段时间

    dim_data <- as.data.table(dim_data)
    dim_data <- unique(dim_data)
    

    此时,第二行立即成功执行。

    我很高兴能有一个解决方案,我知道 唯一的 被称为 depending on the class of its argument 但是,是什么原因导致了 唯一的 当应用到超过一定大小的数据帧时,是否还要完成计算?基本实现是否非常低效?如果是,这是已知的,并且计划进行修复(我找不到关于 唯一的 )? 相反,它与数据关系不大。表函数的实现和更多关于数据的信息。表对象在幕后被更智能地存储?

    0 回复  |  直到 4 年前