我需要从R中的非常大的数据集创建一些数据帧。有没有办法更改我的工作目录,以便我创建的R对象保存到hdfs?我在/ home下没有足够的空间来保存这些大数据帧,但我需要使用一些需要数据帧作为输入的数据帧功能。
答案 0 :(得分: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