无法从Python脚本中的HDFS访问目录

2024-06-17 23:48:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下python脚本(我设法在本地运行它):

#!/usr/bin/env python3

import folderstats

df = folderstats.folderstats('hdfs://quickstart.cloudera.8020/user/cloudera/files', hash_name='md5', ignore_hidden=True)

df.to_csv(r'hdfs://quickstart.cloudera.8020/user/cloudera/files.csv', sep=',', index=True)

我有目录:“文件”在那个位置。我通过命令行,甚至用HUE检查了这个,结果就在那里。在

^{pr2}$

问题是无法访问目录。在

我试着在我的本地终端上运行:Python3号脚本.py即使是超级用户,比如:sudo-uhdfs python3脚本.py外面写着:

Traceback (most recent call last):
  File "script.py", line 5, in <module>
    df = folderstats.folderstats('hdfs://quickstart.cloudera:8020/user/cloudera/files', hash_name='md5', ignore_hidden=True)
  File "/home/cloudera/miniconda3/envs/myproject/lib/python3.7/site-packages/folderstats/__init__.py", line 88, in folderstats
    verbose=verbose)
  File "/home/cloudera/miniconda3/envs/myproject/lib/python3.7/site-packages/folderstats/__init__.py", line 32, in _recursive_folderstats
    for f in os.listdir(folderpath):
FileNotFoundError: [Errno 2] No such file or directory: 'hdfs://quickstart.cloudera:8020/user/cloudera/files'

你能帮我澄清一下这个问题吗?在

谢谢你!在


Tags: inpy脚本truedflinehashfiles
1条回答
网友
1楼 · 发布于 2024-06-17 23:48:05

Python运行在一台具有本地linux(或windows)文件系统(FS)的机器上。在

Hadoop的HDFS项目是一个跨多台机器(节点)的分布式文件系统设置。在

可能有一些自定义类可以在一台机器上读取HDFS数据,但是我不知道有什么,这违背了分布式计算的目的。在

您可以通过Python所在的hadoop fs -get hdfs://quickstart.cloudera:8020/user/cloudera/files /home/user/<target_directory_name>将数据从HDFS复制到本地文件系统,或者使用Spark、Hive或Impala之类的东西来处理/查询数据。在

如果数据量很小,那么将文件从HDFS复制到本地FS以执行python脚本对于clouderaquickstartvm这样的程序应该是有效的。在

相关问题 更多 >