在R中获取文件名

时间:2013-03-08 13:58:21

标签: r hadoop hdfs

我正在尝试获取放置在Hadoop HDFS中的所有文件名。我找到的是用于列出文件的bash命令

hadoop fs -ls

有没有办法让他们进入R.请指导我 谢谢!

4 个答案:

答案 0 :(得分:2)

setpw("/directory/of/choice")
list.files()

结果是当前工作目录中文件名的字符向量

但是我觉得hadoop很特别。所以也许这适合你的情况

system("hadoop fs -ls", intern=T)

结果又是文件名的字符向量,假设“hadoop fs -ls”实际上在系统控制台中返回类似于“ls”的内容。

答案 1 :(得分:2)

查看RHadoop project。特别是列出文件所需的包是rhdfs。

答案 2 :(得分:1)

以为人们可能会觉得这个答案很有用,这里是使用rhdfs从特定hdfs文件夹中获取文件名到R的代码。

R代码:

# Load required library and set hadoop environment
library(rhdfs)
Sys.setenv("HADOOP_CMD"="/opt/cloudera/parcels/CDH/bin/hadoop")

# Initialise
hdfs.init()

# Extract files names from a given hdfs folder to a data frame
files <- as.data.frame(hdfs.ls('/'))

输出:

> files #Print data frame

  permission   owner      group   size          modtime          file
1 -rw-r--r-- manohar supergroup 204632 2015-01-13 22:45 /LICENSES.txt
2 drwxr-xr-x manohar supergroup      0 2014-12-20 19:51           /SA
3 drwxr-xr-x manohar supergroup      0 2015-01-10 18:16           /in

答案 3 :(得分:0)

我使用了Rhipe的命令rhlist("/"),它返回了数据框。