如何在 R 中将稀疏矩阵转换为 Spark 数据帧

问题描述 投票:0回答:1

我知道我可以将稀疏矩阵转换为 Dataframe,然后将其转换为 Spark Dataframe。但是,我的数据非常大,无法转换为普通的 Dataframe。因此,我希望能够直接将稀疏矩阵转换为 Spark Dataframe。

r sparse-matrix sparkr
1个回答
0
投票

这是一个具有 250k x 250k 稀疏矩阵的可重现示例。

library(sparklyr)
library(Matrix)
m = Matrix(0, 250000, 250000)
m[sample(250000, 100), sample(250000, 100)] = 1

sc <- spark_connect(master = "local", version = "3.3")

sprk_m = copy_to(sc, summary(m))
# Source: spark<?> [?? x 3]
# i     j     x
# <int> <int> <dbl>
#   1   2193   306     1
#   2   3609   306     1
#   3   5624   306     1
#   4   8624   306     1
#   5  11861   306     1
#   6  13360   306     1
#   7  18410   306     1
#   8  23652   306     1
#   9  26951   306     1
#   10 27541   306     1
# … with more rows
# ℹ Use `print(n = ...)` to see more rows

注意存储

summary(m)
的中间结果所需的内存量将取决于矩阵的稀疏程度,并且会比原始稀疏矩阵略大。

© www.soinside.com 2019 - 2024. All rights reserved.