multithreading - Julia GroupedDataFrame 组上的多线程迭代

标签 multithreading julia dataframes.jl

我有一个 GroupedDataFrame在 Julia 1.4 (DataFrames 0.22.1) 中。我想遍历行组以计算一些统计信息。因为组多,计算速度慢,所以想做这个多线程。
编码

grouped_rows = groupby(data, by_index)
for group in grouped_rows
    # do something with `group`
end
有效,但是
grouped_rows = groupby(data, by_index)
Threads.@threads for group in grouped_rows
    # do something with `group`
end
结果 MethodError: no method matching firstindex(::GroupedDataFrame{DataFrame}) .有没有办法并行化 DataFrame 行组上的迭代?

最佳答案

您需要有一个 AbstractVectorThreads.@threads上类。
因此,请收集您的 grouped_rows

Threads.@threads for group in collect(SubDataFrame, grouped_rows)
    # do something with `group`
end

关于multithreading - Julia GroupedDataFrame 组上的多线程迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67381968/

相关文章:

c# - 通过 C# 更新 UI 线程(文本框)

performance - 我的代码中是否有开销使我的线程运行速度变慢[C++]

multithreading - Julia v0.5中不同形式的并行性的开销是多少?

julia - Julia 中的空数据框添加行

julia - 在 Julia 中编写用于传递 GroupedDataFrame 的函数方法

multithreading - 单独线程中的无限循环

Java 垃圾回收线程优先级

julia - 在 Julia 中查找子字符串的索引

dataframe - 对 Julia DataFrame 中的行求和

julia - 从 DataFrame 中提取值作为 Float64 值而不是 Vector