2016-05-02 17 views
3

まず、2G txtファイルをRにロードしてHadoopに保存してみてください。sparkR - crashを使用してHadoopにデータを保存する

私のラップトップは4つのコアと16GのRAMを持っています。 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)` 

この場合、RAMをクラッシュさせないようにどのように知っていますか?または、sparkRはデータをロードして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") 
:ありがとう

コード(私も他のHadoopツールとPythonを使用することができます)

関連する問題