簡體   English   中英

如何在Python中將文件從本地移動到HDFS?

[英]How do I move a file from local to HDFS in 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)

我看到以下錯誤:

Usage: hdfs [--config confdir] [--loglevel loglevel] COMMAND

我也嘗試過

 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次。 有任何想法嗎?

如果您打算使用subprocess和shell = True,那么您的命令應顯示為

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM