带有 HDFS 的 Sparkr Read/Write
Sparkr Read/Write with HDFS
我正在尝试弄清楚如何在 SparkR 中读取和写入任意文件 to/from 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 = '')
我知道这些过程可以通过 shell 脚本或 R 中的类似系统调用来完成,例如:
system('hadoop fs -copyToLocal ...')
但是,我有意避免使用这些解决方案。
Spark 2.0.1 版
R v. 3.3.2
编辑:
下面的评论指出这可能是重复的——这个问题更具体地涉及阅读 csvs(我的问题的一部分),但仍然不清楚如何更普遍地加载 .RData 或 read/write 文件。
要在 SparkR 中读取和写入数据帧,请使用这些
sdf <- read.df(csvPath, "csv", header = "true", inferSchema = "true", na.strings = "NA")
write.df(people, path = "people. csv", source = "csv", mode = "overwrite")
要使用 rdd,请使用这些
rdd <- SparkR:::textFile(sc = sc,path = "path",minPartitions = 4)
SparkR:::saveAsTextFile(X,"path")
Databricks 有一个很好的包,可以在 SparkR 中处理 csv 文件,link
我正在尝试弄清楚如何在 SparkR 中读取和写入任意文件 to/from 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 = '')
我知道这些过程可以通过 shell 脚本或 R 中的类似系统调用来完成,例如:
system('hadoop fs -copyToLocal ...')
但是,我有意避免使用这些解决方案。
Spark 2.0.1 版
R v. 3.3.2
编辑: 下面的评论指出这可能是重复的——这个问题更具体地涉及阅读 csvs(我的问题的一部分),但仍然不清楚如何更普遍地加载 .RData 或 read/write 文件。
要在 SparkR 中读取和写入数据帧,请使用这些
sdf <- read.df(csvPath, "csv", header = "true", inferSchema = "true", na.strings = "NA")
write.df(people, path = "people. csv", source = "csv", mode = "overwrite")
要使用 rdd,请使用这些
rdd <- SparkR:::textFile(sc = sc,path = "path",minPartitions = 4)
SparkR:::saveAsTextFile(X,"path")
Databricks 有一个很好的包,可以在 SparkR 中处理 csv 文件,link