2017-03-17 21 views
1

SparkRでHDFSとの間で任意のファイルを読み書きする方法を理解しようとしています。セットアップSparkr HDFSでの読み取り/書き込み

は次のとおりです。

args <- commandArgs(trailingOnly = T) 
MASTER <- args[1] 
SPARK_HOME <- args[2] 
INPATH <- 'hdfs/path/to/read/or/load/from' 
OUTPATH <- 'hdfs/path/to/write/save/to' 

Sys.setenv(SPARK_HOME = SPARK_HOME) 
.libPaths(c(file.path(Sys.getenv('SPARK_HOME'), 'R', 'lib'), .libPaths()) 
library(SparkR) 

sparkR.session(master = MASTER) 

# How to load RData? 
load(paste(INPATH, rObjects.RData, sep = '') 

# How to read data? 
dat <- read.csv(paste(INPATH, datafile.csv, sep = '') 

# Perform operations..... 

# How to write? 
write.csv(dat, paste(OUTPATH, outdata.csv, sep = '') 

私はこれらの手順は、シェルスクリプトで行うことができることを知っている、または同様のシステムは、例えばR、内呼び出します

system('hadoop fs -copyToLocal ...') 

しかし、私は意図的にしようとしていますこれらの解決策を回避する。

スパークV 2.0.1

RのV 3.3.2

編集:。。ノート以下 コメントが、これは読書のCSVをより具体的にその質問のお得な情報duplicate--可能である(の一部私の質問)、しかし、まだ読み込まれている方法が不明確な.RDataまたはより一般的なファイルを読み書きする。

+3

[RstudioのcsvファイルをSparkRにロードする方法]の複製がありますか?(http://stackoverflow.com/questions/32873434/how-to-load-csv-file-into-sparkr-on-rstudio) – zero323

+0

ありがとうございます。これは、csvをdata.frame(私の質問の一部)としてロードする方法についてのより具体的な問題を解決しますが、.RDataをロードしてHDFSに書き込む方法はまだ不明です –

+0

Sparkには適切なリーダーがなく、SparkRはファイルと対話しませんシステムに直接接続します。 – zero323

答えて

2

は、SparkRでCSVファイルを扱うための良いパッケージを持っているこれらの

rdd <- SparkR:::textFile(sc = sc,path = "path",minPartitions = 4) 
SparkR:::saveAsTextFile(X,"path") 

Databricksを使用RDDで作業するには、これらの

sdf <- read.df(csvPath, "csv", header = "true", inferSchema = "true", na.strings = "NA") 
write.df(people, path = "people. csv", source = "csv", mode = "overwrite") 

を使用SparkRに&書き込みデータフレームを読み取るにはlink

+0

あなたのご意見ありがとう、Manikanta。 HDFSから.RDataファイルを読み込む方法をまだ試してみよう –

関連する問題