2016-05-02 2 views
3

Первое, что я попробую, - загрузить файл 2G txt в R и сохранить его в Hadoop.сохранить данные в Hadoop с помощью sparkR - crash

У моего ноутбука 4 ядра и 16G RAM. Использование ОЗУ:

2G RAM - windows and other apps 
8G RAM - after loading data using read.csv 
16G RAM - crashed when trying to save data into Hadoop using `df = createDataFrame(sqlContext, dat)` 

Кто-нибудь знает, как избежать обрыва ОЗУ в этом случае? Или sparkR не хороший инструмент для загрузки данных и сохранения в Hadoop? (Я могу использовать другие инструменты Hadoop и питон тоже) Спасибо

Код:

library(rJava) 

if (nchar(Sys.getenv("SPARK_HOME")) < 1) { 
    Sys.setenv(SPARK_HOME = 'D:\\spark-1.6.1-bin-hadoop2.6') 
} 

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"))) 

sc = sparkR.init(master = "local[*]", 
       sparkEnvir = list(spark.driver.memory = '4g')) 

sqlContext = sparkRSQL.init(sc) 

setwd('D:\\data\\Medicare_Provider_Util_Payment_PUF_CY2013') 

dat = read.csv('Medicare_Provider_Util_Payment_PUF_CY2013.txt', header = T, sep = '\t', row.names = NULL) 
head(dat) 


df = createDataFrame(sqlContext, dat) 

ответ

0
dat = read.csv('Medicare_Provider_Util_Payment_PUF_CY2013.txt', header = T, sep = '\t', row.names = NULL) 


#Option 1: 
#You can save it as hive tables 
hiveContext <- sparkRHive.init(sc) 
createDataFrame(hiveContext, dat) %>% saveAsTable("Hive_DataBase.HiveTable") 

#Option 2: 
#You can save as Parquet format 
df = createDataFrame(sqlContext, dat) 
write.df(df, path="df_1.parquet", source="parquet", mode="overwrite")