python - Hadoop流式访问目录中的文件

标签 python hadoop hadoop-streaming

我希望访问 Hadoop 中的一个目录(通过 Python 流)并循环遍历它的图像文件,在我的映射器中计算每个文件的哈希值。 以下逻辑是否有意义(而不是硬编码,我可以将目录作为例如 -input 传递给 Hadoop)吗?

lotsdir= 'hdfs://localhost:54310/user/hduser/randomimages/' 
import glob
path = lotsdir + '*.*'
files = glob.glob(path)
files.sort()

imagehashes={}
for fname in files:
    imagehashes[fname]=pHash.imagehash( fname )

最佳答案

是的,逻辑是有道理的。

但是您很可能会遇到性能问题,因为您的输入文件不是文本格式,因此它们不会在 HDFS 上正确拆分。

希望 Hadoop 提供多种方法来解决该问题。例如,您可以:

关于python - Hadoop流式访问目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24576064/

相关文章:

azure - Hive:两点之间的距离

maven - 在 Eclipse 中编译 Apache Hadoop 源代码

hadoop - 在运行Hadoop示例时不是有效的jar

python - 通过取相邻元素的平均值替换 numpy 矩阵中的元素

python - 从 JSON 文件创建 dynamoDB 表

python - Django:将一堆媒体分组的正确方法

python - Selenium-Python 与 chromium 浏览器(Windows)

java.lang.ClassNotFoundException : org. apache.hive.service.cli.HiveSQLException 异常

hadoop - Hive 不支持存在。如何编写以下查询?

python-2.7 - Hadoop:单节点与集群性能