Я пытаюсь сделать это в Python:
cat foo | ssh me@xxxx hadoop fs -put - bar/foo
Я изначально пробовал check_call:
foo = 'foo'
subprocess.check_call(['cat', foo, '|','ssh',os.environ['USER']+'@'+hadoopGateway,'hadoop','fs','-put', '-', inputArgs.targetDir+'/'+foo])
, который выдает ошибку:
cat: invalid option -- 'p'
Я посмотрел документацию модуля python pipe и поиграл с ним в оболочке, но я не понимаю, как запустить его без выходного файла, как в примере.
>>> t = pipes.Template()
>>> t.prepend('cat foo', '.-')
>>> t.append('hadoop fs -put - bar/foo', '-.') # what next
Я явно что-то упускаю.