python - 如何将大文本回显/重定向到 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 个字符(我要写入的字符串),我得到一个空的文件。
这里发生了什么?文本大小有限制吗?我可以调整它吗?
解决方案
我不确定你可以回显一个字符串并输入一个输入流。
我认为你应该写一个文件,然后把它
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)
推荐阅读
- vagrant - Nifi:无法从 './data/flow.xml.gz.new.xml.gz' 重命名为 './data/flow.xml.gz'
- r - R包“robCompositions”安装问题
- docker - Docker Swarm - 请求无法到达不同节点上的服务
- postgresql - 月间隔 Postgres
- c++ - Aws C++ SDK 最小安装
- php - PHP多数组合并JSON
- pandas - 如何向 pandas.plot(kind='bar) 添加回归线?
- ruby-on-rails - Authlogic:如何防止重复使用以前的密码?
- java - Gson 使用 `=` 而不是 `:` 返回 Json 对象
- python - 停止 .toml 文件在断电时损坏(python)