如何将echo/redirect大文本放到hdfs中?

How to echo/redirect large text to hdfs put?

我正在尝试使用以下方法通过 pyspark 将一些文本写入 HDFS 上的文件:

command = (" echo '{0}' | HADOOP_USER_NAME=admin hadoop dfs -put - "+root+"/configs.txt").format(dump)
os.system(command)

dump 是一个字符串变量。 root+"/configs.txt" 文件路径 现在,我面临的问题是,当 dump 字符串的长度较小时,文件 configs.txt 的写入没有任何问题,但是当 dump 有点大时,需要 12132 个字符exact (我想写的字符串),我得到一个空文件。

这是怎么回事? 文字大小有限制吗?我可以调整它吗?

我不确定您是否可以回显字符串并放入输入流。

我觉得你应该写一个文件,然后把那个

with open('config.txt', 'w') as f:
    f.write(dump)

command = "HADOOP_USER_NAME=admin hadoop dfs -put {} {}/configs.txt").format('config.txt', root)
os.system(command)