如何在Python中将文件从本地移动到HDFS?

2024-09-30 14:15:33 发布

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

我有一个脚本来检查目录中的文件。如果有正确的文件(带关键字),我想将该/那些文件移到HDFS位置。在

import os
tRoot = "/tmp/mike"
keyword = "test"
for root, dirs, files in os.walk(tRoot):
    for file in files:
        if keyword in file:
            fullPath = str(os.path.join(root, file))
        subprocess.call(['hdfs', 'dfs', '-copyFromLocal','/tmp/mike/test*','hdfs:///user/edwaeadt/app'], shell=True)

我看到以下错误:

^{pr2}$

我也试过

 subprocess.call(['hadoop', 'fs', '-copyFromLocal', '/tmp/mike/test*', 'hdfs:///user/edwaeadt/app'], shell=True)

但我看到了

Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
  CLASSNAME       

而且,这个循环似乎运行了3次。因为我现在看到文件移动到hdfs位置,但我也看到两次文件存在的地方。这个copyFromLocal似乎运行了3次。有什么想法吗?在


Tags: 文件intestforosrootfileshdfs
1条回答
网友
1楼 · 发布于 2024-09-30 14:15:33

如果您正在使用shell命令,那么应该像使用shell一样读取命令

subprocess.call(['hadoop fs -copyFromLocal /tmp/mike/test* hdfs:///user/edwaeadt/app'], shell=True)

相关问题 更多 >

    热门问题