在r中获取文件名

flvlnr44  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(409)

我正在尝试获取所有放置在hadoop hdfs中的文件名。我只找到了列出文件的bash命令

hadoop fs -ls

有没有办法把他们送到r。请引导我谢谢!

kqlmhetl

kqlmhetl1#

我用了rhipe的命令 rhlist("/") 它返回Dataframe。

rjzwgtxy

rjzwgtxy2#

虽然人们可能会发现这个答案很有用,但下面是使用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
jaql4c8m

jaql4c8m3#

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

结果是当前工作目录中文件名的字符向量
但我突然想到hadoop很特别。所以也许这在你的情况下管用

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

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

qlvxas9a

qlvxas9a4#

查看rhadoop项目。尤其是需要列出文件的包是rhdfs。

相关问题