R 无法在 ff 过程上分配内存。怎么会?

2023-12-14

我正在使用配备 Intel Xeon 处理器和 24 GB RAM 的 64 位 Windows Server 2008 计算机。我在尝试读取 11 GB(>2400 万行,20 列)的特定 TSV(制表符分隔)文件时遇到问题。我平常的同伴,read.table,让我失望了。我目前正在尝试该包ff,通过这个过程:

> df <- read.delim.ffdf(file       = "data.tsv",
+                       header     = TRUE,
+                       VERBOSE    = TRUE,
+                       first.rows = 1e3,
+                       next.rows  = 1e6,
+                       na.strings = c("", NA),
+                       colClasses = c("NUMERO_PROCESSO" = "factor"))

这对于大约 600 万条记录来说效果很好,但随后我收到了一个错误,如您所见:

read.table.ffdf 1..1000 (1000) csv-read=0.14sec ffdf-write=0.2sec
read.table.ffdf 1001..1001000 (1000000) csv-read=240.92sec ffdf-write=67.32sec
read.table.ffdf 1001001..2001000 (1000000) csv-read=179.15sec ffdf-write=94.13sec
read.table.ffdf 2001001..3001000 (1000000) csv-read=792.36sec ffdf-write=68.89sec
read.table.ffdf 3001001..4001000 (1000000) csv-read=192.57sec ffdf-write=83.26sec
read.table.ffdf 4001001..5001000 (1000000) csv-read=187.23sec ffdf-write=78.45sec
read.table.ffdf 5001001..6001000 (1000000) csv-read=193.91sec ffdf-write=94.01sec
read.table.ffdf 6001001..
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'

如果我没记错的话,R 正在抱怨缺乏内存来读取数据,但不是read...ffdf程序应该在读取数据时避免大量内存使用?我在这里可能做错了什么?


(我意识到这是一个老问题,但我遇到了同样的问题,花了两天时间寻找解决方案。这似乎是一个很好的地方,可以记录我最终为后代找到的答案。)

问题不在于可用内存不足。问题是您已经达到了单个字符串的内存限制。来自帮助('内存限制'​​):

个别对象也有限制。存储空间不能超过地址限制,如果尝试超过该限制,则会出现错误消息无法分配长度向量。字符串的字节数限制为 2^31 - 1 ~ 2*10^9,这也是数组每个维度的限制。

就我而言(似乎也是您的情况),我没有费心去设置引号字符,因为我正在处理制表符分隔的数据,并且我认为这并不重要。然而,在数据集中间的某个地方,我有一个带有不匹配引号的字符串,然后 read.table 愉快地跑过行尾并继续到下一个,下一个,下一个......直到它达到了绳子尺寸的极限并爆炸了。

解决方案是明确设置quote = ""在参数列表中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 无法在 ff 过程上分配内存。怎么会? 的相关文章

  • R 中的卡方拟合优度检验

    我有一个观察值向量 还有一个用模型计算的值向量 actual lt c 1411 439 214 100 62 38 29 64 expected lt c 1425 3 399 5 201 6 116 9 72 2 46 3 30 4 6
  • 单击 hPlot 图表中闪亮的数据点时打印组名称

    我有一个闪亮的应用程序 它使用 rCharts 中的 highcharts 库显示一些图表 在某些情况下 我在单个图表上有多个图表 这些图表是使用 hPlot 中的组选项创建的 我希望在单击图表时打印单个数据点的所有参数 x y 和组值 我
  • 使用格式表过滤数据框

    样本数据 修改自formattablegithub 文档 df lt data frame id 1 10 name c Bob Ashley James David Jenny Hans Leo John Emily Lee age c
  • 使用 Rgraphviz 中的 pos 参数来固定节点位置

    基于这个问题当弧与另一弧重叠时自动弯曲 https stackoverflow com questions 45721802 automatically curving an arc when it is overlapping with
  • 安装 R 包。包含目录为空。开发标头

    我目前正在尝试运行一些最初在 2 11 0 下运行的 R 代码 我使用的 R 版本 2 14 1 无法运行该代码 我不熟悉 R 及其向后兼容性 据我所知 我的问题可能与版本无关 我会很高兴得知这是我做错的事情 其余的代码是无关紧要的 即使我
  • 如何检查向量是否是单个 NA 值,没有长度警告且没有抑制

    我有一个功能NA作为默认值 但如果没有NA应该是一个不限于大小 1 的字符向量 我有一个检查来验证这些 但是is na当向量是字符向量时产生标准警告length大于1 so function lt function x NA if is n
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 计算横截面积作为高度的函数

    我试图弄清楚如何计算不同水位的河流横截面的充满水的面积 对于横截面 我有 5 m 宽河流上每 25 cm 的深度 并且可以根据之前很好回答的问题来计算面积计算不同高度的横截面积 https stackoverflow com questio
  • data.table 相当于 dplyr::filter_at

    考虑数据 library data table library magrittr vec1 lt c Iron Copper vec2 lt c Defective Passed Error set seed 123 a1 lt sampl
  • 最新的 Windows 10 更新后 R 将无法运行

    我已经更新了我的 Windows 但 R 无法运行 因此 R studio 也无法运行 当我运行 R GUI 时 它只是冻结并且没有响应 我已允许防火墙豁免铬 我正在使用 Windows Insider 计划并且刚刚更新到 Windows
  • 写入抓取数据的 csv 文件时如何拆分项目名称

    我有兴趣使用 R 从网上抓取的数据创建 csv 或类似的 Excel 兼容文件 到目前为止 我通过执行以下操作来存储数据 require textreadr spiegel lt read html http www spiegel de
  • 从 CSV 中去除额外的文本限定符

    我有一个 CSV 其中某些字段由 符号分隔作为文本限定符 参见下面的例子 请注意 每个整数 例如 1 2 3 等 都应该是一个字符串 合格的字符串被 符号包围 1 2 3 qualifiedString1 4 5 6 7 8 9 10 11
  • 如何使用“downloadHandler”在闪亮的可反应内部创建下载按钮?

    我创建downloadlinksa 的行内reactable 我这样做是为了DT datatable and a reactable reactable 我还创建了相应的output downloadHandler在 ids 上使用 app
  • ggplot2 geom_function 可以跨 arg 值进行分面吗?

    我想通过分面 geom function 创建 ggplot2 图 以便函数的参数在网格中变化 例如像这样的东西 my function lt function x par if par 1 return sin x else return
  • 获取数据集 R 包中所有对象名称的列表?

    如何获取对象中对象的确切名称列表datasets https stat ethz ch R manual R devel library datasets html 00Index html包裹 我在这里找到了很多 data package
  • 如何通过在R闪亮循环中读取.csv文件来动态生成dataTableOutput?

    我有一个函数可以生成 n 个数据帧并将其作为 csv 文件保存在某个位置 并且该函数返回已保存 CSV 的文件名 我希望获取这些 csv 文件 使用以下命令读取它read csv 然后使用 renderUI 和 renderDataTabl
  • 使用 Pandas 读取 CSV 时如何删除 .0

    我有一个 CSV 文件正在读入 pandas 数据帧 所有数字都没有任何小数位 但是当我将其读入 dframe 时 它 会在带小数的数字中添加尾随零 1205 变为 1205 0 如何在 pd read csv 期间去掉 0 我知道我可以在
  • 将一长行带空格的数据导入R中

    这个问题是我上一个问题的后续问题 将一长行数据导入到 R 中 https stackoverflow com questions 8389913 我有一个由单行文本组成的大型数据文件 格式类似于 Cat 14 15 Horse 16 我最终
  • 闪亮的仪表板侧边栏中的可折叠菜单项

    我的侧边栏中有两个菜单项 目前 如果我单击任何菜单项 则会显示所有菜单项的选项卡项 我想让它可折叠 如果我单击多个名称菜单 单个分析应该折叠 如果我单击单个分析 多个分析应该折叠 目前的设计是 相同的可重现代码是 library shiny
  • 如何在复杂的皂膜GAM中设置更平滑的边界条件?

    我正在对南太平洋岛屿泻湖中宽吻海豚的分布进行建模 我想使用肥皂膜平滑器来模拟海豚在二维表面 经度 x 纬度 上存在的概率 考虑到陆地边界 显然海豚不能在陆地上行走 我想知道如何将我的研究区域 陆地和近海水域 的边界固定为等于零的条件 因为我

随机推荐

  • spring-boot 基本 JSP 404 未找到

    无法使用 spring boot 加载非常简单的 JSP 页面 出现 404 Not Found src main java SampleWebJspApplication java Configuration EnableAutoConf
  • 在类中实现 Spinner 类型对象作为子进程

    我是一个完全的初学者 今天才开始上课 我试图制作一种 旋转器 对象 我可以称之为这样的东西 我感到困惑的一件事是是否使用 线程 线程 或 过程 我刚刚在某处读到 一个线程实例的成本为 8meg 因为这是一个简单的文本旋转器 它不保证使用大量
  • 使用 C 的 Beaglebone 黑色 PWM

    我用 C 语言为 beaglebone black 编写了一个示例 pwm 函数 每当我在其他模块或 main 中进行函数调用时 我都会遇到分段错误 请帮助我在哪里犯了错误以及如何处理这个问题 下面是代码 int trigger pwm o
  • 在渲染视图之前测量视图

    我需要找出将视图附加到其父视图后会有多大 我已经重写了这个方法 onMeasure int int 但看起来只有当我实际使用以下方法将自定义视图添加到其容器时才会调用此方法 addView myView 您认为有没有办法在渲染视图本身之前获
  • 编译OpenSSL时.rodata和-fPIC是什么意思?

    我正在尝试编译 openssl 但遇到错误 使用的 CFLAGS 是 O2 fPIC fno strict overflow 有人可以向我解释一下是什么吗 rodata下面这句话是什么意思 usr bin ld libcrypto a wp
  • 查找最近的观察结果 - R

    我有两组 已排序的 POSIXct 时间序列 如下所示 set seed 123 ll sort strptime 16 07 2015 format d m Y 10 3600 1 3600 round rnorm 3600 digits
  • 使用 OwnerDrawText 模式定位和突出显示 TreeView 节点文本

    我的问题 我正在尝试创建一个TreeView这会将与搜索词匹配的节点文本部分加粗 我的代码被采用于这个问题 我有相同 类似的问题 有或没有ImageList使用过 但我会在这里发布未使用的版本 当我渲染文本时 我得到类似这样的结果 其中文本
  • php合并json数组

    array 1 PlayerID 17794204 userName Vandiel castleCount 9 NotUpd 1476253231000 PlayerID 21532584 userName Mayland castleC
  • ASP.NET MVC 中的 jQuery AJAX 响应

    甚至不确定这是否是标题问题的正确方式 我知道我的 AJAX 调用都是错误的 这就是我现在正在做的事情 顺便说一句 我正在使用 ASP NET MVC 后端 I use jQuery ajax将一些数据发布到操作 该操作将加载我在响应中捕获的
  • 我可以使用 Box::from_raw 从 Vec::into_boxed_slice 释放内存吗?

    I saw以下代码用于将字节数组返回给 C repr C struct Buffer data mut u8 len usize extern C fn generate data gt Buffer let mut buf vec 0 5
  • 如何用Delphi 5创建Telnet客户端

    如何在 Delphi 5 应用程序中创建 Telnet 客户端 ICSFrancois Piette 的 Internet Component Suite 有一些有用的组件 http www overbyte be eng products
  • MySQL 查询返回重复行

    我有一张桌子mytable像下面这样 product tag lot 1111 101 2 1111 102 5 2222 103 6 3333 104 2 4444 101 2 5555 101 2 5555 102 5 6666 102
  • XPath 中的逻辑或?为什么不是|在职的?

    我有一个 XSLT 模板 它对所有级别的主题进行计数 用于在我拥有的 DITA 项目中用编号来标记这些主题
  • 自定义 Win32 的保存文件对话框

    我正在尝试使用保存文件GetSaveFileName并希望在我的保存文件对话框的底部有几个额外的弹出窗口 以允许用户指定更多选项 我正在尝试遵循MSDN 文档 具体来说资源管理器式定制 关于这个主题 但似乎无法让我的自定义项目出现 我相信我
  • Python Pillow 透明 gif 不起作用

    我正在尝试制作以下图标旋转的 gif 为了尝试实现这一目标 我使用 Pillow 库在 Python 中运行以下代码 from PIL import Image ImageDraw images icon Image open camera
  • Android 点击地图并获取坐标[重复]

    这个问题在这里已经有答案了 我正在尝试制作一个应用程序 一旦用户点击地图 它就会获取该特定点的坐标 除其他外 我还读到 在android中点击地图获取坐标 这似乎是最相关的帖子 但我想要做的是能够点击地图上的任何位置而不是标记 覆盖项目 事
  • JavaScript 闭包和内存泄漏

    我在 Jquery in Action 中读到 JavaScript 闭包可能会导致内存泄漏 意外的闭包可能会产生意想不到的后果 例如 循环引用可能导致内存泄漏 一个典型的例子是创建引用闭包变量的 DOM 元素 从而防止这些变量被回收 有人
  • 将 Unicode 字符串存入 SQLite 数据库

    我需要一些关于将 unicode 字符串插入 SQLite 数据库的 Visual Studio C 代码方面的帮助 下面是我将测试字符串写入数据库的测试代码 string testStr SQLiteConnection mydataCo
  • 将 CommandParameter 从 MenuItem 绑定到父 DataGrid

    如何将命令参数从 MenuItem 绑定到父 Grid DataContext 我有一个带有 ContextMenu 的 DataGrid 将菜单项绑定到 ViewModel 命令 但命令参数始终为 null 我使用 DataGrid 中的
  • R 无法在 ff 过程上分配内存。怎么会?

    我正在使用配备 Intel Xeon 处理器和 24 GB RAM 的 64 位 Windows Server 2008 计算机 我在尝试读取 11 GB gt 2400 万行 20 列 的特定 TSV 制表符分隔 文件时遇到问题 我平常的