python - 在 hadoop 中使用 cat 命令时没有这样的文件或目录
问题描述
我在一个目录中有两个文件,一个名为 word_mapper.py,另一个名为 README.md。我正在尝试将这些文件与 hadoop 一起使用,但是当我运行命令时,我hadoop fs -cat README.md | python3 word_mapper.py
从终端得到以下响应:
2021-02-12 14:13:55,862 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
cat: `README.md': No such file or directory
Hadoop 已启动并正在运行,因此不完全确定如何解决此问题。有什么建议么?
解决方案
hadoop fs
命令默认从您的 HDFS 用户文件夹中读取。
您需要首先hadoop fs -put README.md
,或者如果您的意思cat
是本地文件(如您所说,您有“一个目录中有两个文件,一个称为 word_mapper.py 另一个称为 README.md ”),然后hadoop fs -
从您的命令中删除,因为您的本地目录文件所在且 Python 代码正在运行的位置不是 HDFS
如果您真的想使用 Python 来运行映射器,那么我建议您查看mrjob
,但使用 PySpark 可能会更好,因为 MapReduce 没有被广泛使用
推荐阅读
- ios - 如何以编程方式在 iOS 中使用 PHPicker 加载原始图像?
- apache - 如何从 HTML 网页中删除文件扩展名通常不起作用
- python - 以最快的方式从数据框 Python 中的索引创建一个新的字典列表
- c# - selenium 是否可以访问特定操作后生成的值?
- c++ - c ++从秒变为天,小时.分钟和秒
- java - 添加 spring-security-oauth2-client 依赖项时出现“无法执行目标...,无法执行 java”错误
- python - 如何将格式应用于列中的特定值
- javascript - 我只使用调度,React 抛出 Can't perform a React state update on an unmounted component
- .net - Copy-Item:该进程无法访问文件“dll”,因为它正被另一个进程使用
- excel - 如何在数据顺序不固定的情况下逐行比较 2 个 excel 工作表