【发布时间】:2016-09-08 13:30:14
【问题描述】:
如何有效地将大型本地数据帧转换为 SparkR 数据帧?在我的本地开发机器上,当我尝试将其转换为 SparkR 数据帧时,大约 650MB 的本地数据帧很快超过了可用内存,并且我有一台具有 40GB 内存的开发机器。
library(reshape2)
years <- sample(1:10, 100, replace = T)
storms <- sample(1:10, 100, replace = T)
wind_speeds <- matrix(ncol = 316387, nrow = 100,
data = sample(0:250, 31638700, replace = T))
df <- data.frame(year=years, storm=storms, ws = wind_speeds)
df <- melt(df, id.vars = c('year', 'storm'))
Sys.setenv(SPARK_HOME = "/home/your/path/spark-2.0.0-bin-hadoop2.7")
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = "10g"))
spark_df <- as.DataFrame(df) #This quickly exceeds available memory
【问题讨论】: