0

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

hadoop fs -ls

有什么办法可以让它们进入R。请指导我谢谢!

4

4 回答 4

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

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

但在我看来,hadoop 很特别。所以也许这适用于你的情况

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

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

于 2013-03-08T14:50:43.297 回答
2

查看RHadoop 项目。特别是您需要列出文件的包是 rhdfs。

于 2013-03-08T16:50:02.897 回答
1

认为人们可能会发现这个答案很有用,这里是使用 rhdfs 将特定 hdfs 文件夹中的文件名获取到 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
于 2015-01-14T04:40:24.340 回答
0

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

于 2013-03-15T07:44:17.043 回答