问题标签 [multidplyr]
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:为什么并行会(很多)慢?将并行用于(左)加入大量大文件的最佳策略是什么?
我已经阅读了一些关于这些主题的问题以及一些教程,但未能解决我的问题,所以决定问自己。
我收集了大量类型为 A、B、C 的大文件;在某些情况下,我需要将 B、C 与 A 分开。我在具有 64 个 CPU 和 240GB 的远程服务器上工作,所以我很自然地想同时使用它的电源和处理。我拥有的一个重要知识是,如果 a_i 文件只能与 b_i 成功连接,b_(i+1) 来自 B,对于 C 也是如此。我最初的尝试是为 'a_i' 文件创建一个 'join_i' 函数,然后运行它并行(我有 448 个文件)。然而,没有显着的时间改进,事实上,当我观察性能时——可悲的是,CPU 的负载百分比非常低。据我所知,我认为瓶颈是 IO,尤其是因为所有文件都很大。这是一个有效的假设吗?无论如何,在第二次尝试时,我决定按顺序浏览每个文件,但在每次迭代中使用并行优势。但是,经过多次尝试,我也没有在这里获得任何运气。我试图在下面做一个最小的例子,其中并行要慢得多(实际上在我的真实数据上它冻结了)。这里有什么问题?是代码错误还是对 R 中的并行工作原理有更深的误解?此外,我尝试了一些 multidplyr 和 mclapply,但在这两种情况下也没有运气。我还想指出,读取文件需要的不仅仅是连接本身:在 1 次迭代中读取大约需要 30 秒(我使用 fread,通过 cmd 在其中解压缩),而连接大约需要 10 秒。鉴于此,这里最好的策略是什么?提前致谢!我试图在下面做一个最小的例子,其中并行要慢得多(实际上在我的真实数据上它冻结了)。这里有什么问题?是代码错误还是对 R 中的并行工作原理有更深的误解?此外,我尝试了一些 multidplyr 和 mclapply,但在这两种情况下也没有运气。我还想指出,读取文件需要的不仅仅是连接本身:在 1 次迭代中读取大约需要 30 秒(我使用 fread,通过 cmd 在其中解压缩),而连接大约需要 10 秒。鉴于此,这里最好的策略是什么?提前致谢!我试图在下面做一个最小的例子,其中并行要慢得多(实际上在我的真实数据上它冻结了)。这里有什么问题?是代码错误还是对 R 中的并行工作原理有更深的误解?此外,我尝试了一些 multidplyr 和 mclapply,但在这两种情况下也没有运气。我还想指出,读取文件需要的不仅仅是连接本身:在 1 次迭代中读取大约需要 30 秒(我使用 fread,通过 cmd 在其中解压缩),而连接大约需要 10 秒。鉴于此,这里最好的策略是什么?提前致谢!在 1 次迭代中读取大约需要 30 秒(我使用 fread,通过 cmd 在其中解压缩),而加入大约需要 10 秒。鉴于此,这里最好的策略是什么?提前致谢!在 1 次迭代中读取大约需要 30 秒(我使用 fread,通过 cmd 在其中解压缩),而加入大约需要 10 秒。鉴于此,这里最好的策略是什么?提前致谢!
在我的服务器上,%do% 大约需要 5s,%dopar% 需要超过 1m。请注意,这是为了加入本身,甚至不考虑制作集群的时间。顺便说一句,有人也可以评论我应该有多少个集群吗?比如说,我在 X 个均匀大小的块上划分数据并有 Y 个 CPU 可用——我应该尽可能多地放置 Y,还是 X,或其他数量的集群?
r - 将不同数据框中的列相乘
我正在编写用于分析一组 dplyr 数据的代码。
这是我的 table_1 的外观:
我的 table_2 看起来像这样:
我很想根据表1列“A”,如果A>6,则在表1中创建列“G”,等于“ C*D+C*E
”
基本上,这就像将表 2 作为一个因素......
有什么办法可以做到吗?
我可以将过滤器应用于列“A”并将列“C”与设定的数字相乘,而不是 table_2 中的因子
r - 处理多个 .csv 文件,其中一个的代码,并作为整体输出
我正在使用 R 来总结多个 .CSV 文件中的“A”列,我已经为 1 个 csv 文件准备了代码,无论如何我可以一次处理所有 csv 文件并将其作为一个输出吗?
这是输出的样子
我想要的是
有可能实现吗?
多谢你们
r - 如何使用 Windows 10 和 R 3.4.4 安装和调用包“multidplyr”
我试图使用
devtools::install_github("hadley/multidplyr")
但是当我使用它时,我得到了错误
r - 您如何处理分区中的错误?
我正在尝试对我的数据集进行分区,以便将组的所有成员发送到同一个核心,我正在逐字关注在线教程,但似乎存在问题。错误是:分区错误(。,组,集群=集群):未使用的参数(组)
因为我有 16 个核心,每个组都分配了一个 1:16 的数字,这个数字保存在组列中
r - 有没有办法并行化 tidyr?
我正在使用 Tidyr 完成余额和交易的时间序列,但是由于个人数量的计算需要大量时间。我有 16 个内核,而 R 只使用一个内核有什么方法可以并行化 Tidyr?
我所拥有的只是这个(它由一组进行,以便分别完成每个人的时间序列)
r - Rstudio致命错误与multidplyr中的分区
当我尝试对数据进行分区时,我遇到了 Rstudio 不断崩溃的问题。我设法使用在 multidplyr 的小插图中使用的 nycflights13 数据重现了同样的问题。
这有效
但是当我这样做时
它崩溃了,我收到以下消息
R 会话中止
R 遇到致命错误
会话已终止
我正在使用 Rstudio (1.2.5033) 和 R 版本 3.6.2
当我在 R 中运行时,它确实有效。
r - 根据 r 中的多个标准在数据框中创建一个新变量
我有一个数据集
基于这三列,我需要在同一个表中添加新变量
预期产出
r - 如何在 R 中使用 multidplyr 和并行连接、分组和汇总大型数据帧
这个问题类似于 R 中数据非常大的其他问题,但我找不到如何合并/加入然后对两个 dfs 执行计算的示例(而不是读取大量数据帧并使用 mclapply 来执行计算)。这里的问题不是加载数据(大约需要 20 分钟,但它们确实会加载),而是合并和汇总。
我已经尝试了所有我能找到的 data.table 方法、不同类型的连接和 ff,但我仍然遇到 vecseq 限制 2^31 行的问题。现在我正在尝试使用 multidplyr 并行执行,但无法弄清楚错误来自哪里。
数据框:species_data # df 约 6500 万行,cols <- c("id","species_id") 查找 #df 约 1700 万行,cols <- c("id","cell_id","rgn_id")并非查找中的所有 id 都出现在 species_data
使用 multidplyr 合并和加入 dfs
这是我第一次尝试并行和大数据,我正在努力诊断错误。
谢谢!