Мне было интересно, если sparkR упростит объединение больших наборов данных в отличие от «обычного R»? У меня есть 12 файлов csv, которые составляют приблизительно 500 000 строк на 40 столбцов. Эти файлы являются ежемесячными данными за 2014 год. Я хочу сделать один файл за 2014 год. Все файлы имеют одинаковые метки столбцов, и я хочу объединиться по первому столбцу (году). Однако некоторые файлы имеют больше строк, чем другие.Слияние больших наборов данных с использованием sparkR
Когда я побежал следующий код:
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?
Вы читаете [это] (http://stackoverflow.com/questions/23169645/r-3-0-3-rbind-multiple-csv-files) ответ? В первом разделе все файлы в файлах 'file_list' csv? –
Вы говорите, что хотите «объединиться по первому столбцу», но в вашем примере кода вы объединяете строки из разных файлов. Ответы ниже (на момент написания этой статьи) касаются слияния = объединение, а не конкатенация. – kasterma
Отвечает ли кто-нибудь ниже на ваш вопрос? Если да, любезно согласитесь с ответом. Это может помочь другим разработчикам – sag