使用 Databricks 将 api 的结果写入数据湖

Write result of api to a data lake with Databricks

我正在使用以下代码进行 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:'list'对象没有属性'write'

您需要使用

将 json 列表 data 变量转换为数据帧

,

然后使用

写入 Azure DataLake Storage

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>")