问题描述
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>")