gpt4 book ai didi

python - 使用 python 将 JSON 保存到 HDFS

转载 作者:可可西里 更新时间:2023-11-01 14:43:47 26 4
gpt4 key购买 nike

我有一个 python 脚本,它当前访问一个返回 JSON 的 API。然后它获取 JSON 字符串并将其作为文件保存在本地文件系统上,然后我将其手动移动到 HDFS 中。我想更改此设置,以便我的 python 脚本直接保存到 HDFS,而不是先访问本地文件系统。我目前正在尝试使用 HDFS 和 DFS 命令保存文件,但我认为复制命令不是执行此操作的正确方法,因为当我尝试保存它时它不是文件而是 JSON 字符串。

当前代码

import urllib2
import json
import os

f = urllib2.urlopen('RESTful_API_URL.json')
json_string = json.loads(f.read().decode('utf-8'))
with open('\home\user\filename.json', 'w') as outfile:
json.dump(json_string,outfile)

新代码

f = urllib2.urlopen('RESTful_API_URL.json')
json_string = json.loads(f.read().decode('utf-8'))
os.environ['json_string'] = json.dump(json_string)
os.system('hdfs dfs -cp -f $json_string hdfs/user/test')

最佳答案

我认为问题与此线程相同 Stream data into hdfs directly without copying .

首先,这个命令可以将stdin重定向到hdfs文件,

hadoop fs -put - /path/to/file/in/hdfs.txt

然后,你可以在 python 中执行此操作,

os.system('echo "%s" | hadoop fs -put - /path/to/file/in/hdfs.txt' %(json.dump(json_string)))

关于python - 使用 python 将 JSON 保存到 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com