如何解决使用Databricks将api的结果写入数据湖
我正在使用以下代码进行api调用。
import requests
response = requests.get('https://myapi.com/api/v1/city',auth=('user','password'))
data = response.json()
想将JSON有效内容另存为Azure Data Lake Storage Gen2中的json文档,并从此处读取文档。
data.write.json("wasbs://<file_system>@<storage-account-name>.dfs.core.windows.net/city.json")
错误: AttributeError:“列表”对象没有属性“写”
解决方法
您需要通过使用
将json列表data
变量转换为数据帧
df=spark.createDataFrame(data,schema)
,df=spark.read.json(data)
然后使用写入到Azure DataLake存储
df.write.json("wasbs://<file_system>@<storage-account-name>.dfs.core.windows.net/city.json")
Or
如果您不想转换为 json
,请使用
spark.createDataFrame(data,schema).saveAsTextFile("<path>")
更新:
尝试通过使用 Row
对象创建数据框。
Example:
data=[{'id': 1}]
from pyspark.sql import *
df=spark.createDataFrame([Row(**i) for i in data])
df.show()
#+---+
#| id|
#+---+
#| 1|
#+---+
df.write.json("<path>")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。