在Rstudio中读取HDFS块

时间:2015-06-15 14:02:28

标签: r hadoop

我想在Rstudio中阅读HDFS文件,它不是一个容易做的CSV文件,但它们是块。我使用sqoop从数据库加载数据,因此我将数据分成块。 我有这样的文件:

/data/_SUCCESS
/data/part-m-00000
/data/part-m-00001
/data/part-m-00002
/data/part-m-00003
/data/part-m-00004
/data/part-m-00005

但我无法读取所有文件,使用此命令我一次只能读取一个: hdfs.data <- file.path(hdfs.root,"part-m-00001" //每次都更改part-m-0000 *,*不能读取所有文件......

2 个答案:

答案 0 :(得分:1)

Are they text files? You should be able to load the in the same way as csv files.

list_tables <- lapply(list.files(hdfs.root,full.names = TRUE), read.table)
library(data.table)
table_composite <- rbindlist(list_tables)

You should include the options of read.table as arguments of lapply

Alternatively, you can read the full folder as a composite csv file.

Another option is using the open-source package rhdfs.

答案 1 :(得分:0)

试试这个:

它将HDFS数据加载到R安装的本地。你可以在数据上做其他的事情!

library(data.table)
sdf_local <- fread(paste("hadoop", "fs -text <HDFS file path>"))
head(sdf_local)


Note :<HDFS file path> should be complete path to the file