使用 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>")
我正在使用以下代码进行 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 Storagedf.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>")