首页 > 解决方案 > 如何将大文本回显/重定向到 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 个字符(我要写入的字符串),我得到一个空的文件。

这里发生了什么?文本大小有限制吗?我可以调整它吗?

标签: pythonhadoophdfs

解决方案


我不确定你可以回显一个字符串并输入一个输入流。

我认为你应该写一个文件,然后把它

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)

推荐阅读