У меня есть сценарий whichs выкладывает использовать Hadoop CLI, чтобы загрузить файл в HDFSPython subprocess.call аргументы не будучи обнаруженным
Вот фрагмент кода:
def hdfs_put(file_path, topic):
print(file_path)
print(topic)
call(["/usr/local/hadoop-2.5.1/bin/hadoop fs -put", file_path, "/" + topic]
, shell=True
, stderr=STDOUT)
Вот что я получаю (обратите внимание на аргументы не нуль):
avro/hdfs_1_2014-11-05.avro
hdfs
-put: Not enough arguments: expected 1 but got 0
Usage: hadoop fs [generic options] -put [-f] [-p] <localsrc> ... <dst>
теперь я получаю эту ошибку: '' 'FileNotFoundError: [Errno 2] Нет такого файла или каталога: '/usr/local/hadoop-2.5.1/bin/hadoop fs -put' '' ' – Lee
Он существует, хотя: (venv) bash-4.1 # /usr/local/hadoop-2.5 .1/bin/hadoop fs -put -put: Недостаточно аргументов: ожидается 1, но получено 0 Использование: hadoop fs [generic options] -put [-f] [-p] ... –
Lee
@JohnDoe: Я думаю, вы пренебрегли, чтобы разделить команду, как я. Пожалуйста, внимательно прочитайте мой ответ и сравните с вашим кодом. –