【发布时间】:2016-01-12 02:30:15
【问题描述】:
我想知道 sparkR 是否比“常规 R”更容易合并大型数据集?我有 12 个 csv 文件,大约 500,000 行乘 40 列。这些文件是 2014 年的月度数据。我想为 2014 年制作一个文件。这些文件都有相同的列标签,我想按第一列(年份)合并。但是,某些文件的行数比其他文件多。
当我运行以下代码时:
setwd("C:\\Users\\Anonymous\\Desktop\\Data 2014")
file_list <- list.files()
for (file in file_list){
# if the merged dataset doesn't exist, create it
if (!exists("dataset")){
dataset <- read.table(file, header=TRUE, sep="\t")
}
# if the merged dataset does exist, append to it
if (exists("dataset")){
temp_dataset <-read.table(file, header=TRUE, sep="\t")
dataset<-rbind(dataset, temp_dataset)
rm(temp_dataset)
}
}
R 崩溃了。
当我运行这段代码时:
library(SparkR)
library(magrittr)
# setwd("C:\\Users\\Anonymous\\Desktop\\Data 2014\\Jan2014.csv")
sc <- sparkR.init(master = "local")
sqlContext <- sparkRSQL.init(sc)
Jan2014_file_path <- file.path( 'Jan2014.csv')
system.time(
housing_a_df <- read.df(sqlContext,
"C:\\Users\\Anonymous\\Desktop\\Data 2014\\Jan2014.csv",
header='true',
inferSchema='false')
)
我收到以下错误:
Error in invokeJava(isStatic = TRUE, className, methodName, ...) :
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost):
那么在 sparkR 中合并这些文件的简单方法是什么?
【问题讨论】:
-
你读过this的答案吗?第一部分,
file_listcsv 文件中的所有文件吗? -
您说您想“按第一列合并”,但在您的示例代码中,您连接了来自不同文件的行。下面的答案(在撰写本文时)是关于 merging=joining,而不是 concatenating。
-
以下是否有答案,回答您的问题?如果是,请接受答案。这可能会帮助其他开发人员
标签: r apache-spark sparkr