Используйте модуль подпроцесса для запуска команды bash из python.
import subprocess
process = subprocess.Popen("echo $data | hdfs dfs -put - /user/test/abc.txt",
shell="TRUE" , stdout=subprocess.PIPE)
process.wait()
print(process.returncode)
Но в идеале используйте родной коннектор pythonhdfs. Выезд.
Вот фрагмент из документации.
from pyarrow import HdfsClient
# Using libhdfs
hdfs = HdfsClient(host, port, username, driver='libhdfs')
# Using libhdfs3
hdfs_alt = HdfsClient(host, port, username, driver='libhdfs3')
path = '/user/test/abc.txt'
with hdfs.open(path, 'wb') as f:
f.write(data)`