1

我需要从 R 中非常大的数据集创建一些数据框。有没有办法更改我的工作目录,以便将我创建的 R 对象保存到 hdfs 中?我在/home 下没有足够的空间来保存这些大数据框,但是我需要使用一些需要数据框作为输入的数据框函数。

4

1 回答 1

2

如果我们使用数据框对来自 hdfs 的数据进行一些操作,从技术上讲,我们使用的是内存而不是磁盘空间。所以限制因素将是内存(RAM)而不是任何工作目录中的可用磁盘空间,并且更改工作目录不会有太大意义。

您无需将文件从 hdfs 复制到本地计算上下文即可将其作为数据帧处理。

使用 rxReadXdf() 将 xdf 数据集直接转换为 hdfs 本身的数据帧。

像这样的东西(假设你在 hadoop 计算上下文中):

airDS <- RxTextData(file="/data/revor/AirlineDemoSmall.csv", fileSystem=hdfFS)
# making a text data source from a csv file at above hdfs location 
# hdfsFS is the object storing hadoop fileSystem details using RxHdfsFileSyStem() 

airxdf <- RxXdfData(file= "/data/AirlineXdf")
# specifying the location to create the composite xdf file in hdfs
# make sure this location exits in hdfs


airXDF <- rxImport(inFile=airDS, outFile=airxdf)
# Importing csv to composite xdf 


airDataFrame <- rxReadXdf(file=airXDF)

# Now airDataFrame is a dataframe in memory 
# use class(airDataframe) to double check
# do your required operations on this data frame
于 2015-05-20T09:06:47.903 回答