将rest api get方法响应另存为json文档

问题描述

我正在使用下面的代码从rest api中读取并将响应写入pyspark中的json文档,并将文件保存到Azure Data Lake Gen2。当响应没有空白数据,但是当我尝试取回所有数据然后遇到以下错误时,该代码可以正常工作。

错误消息:ValueError:推断后无法确定某些类型

代码:

import requests
response = requests.get('https://apiurl.com/demo/api/v3/data',auth=('user','password'))
data = response.json()
from pyspark.sql import *
df=spark.createDataFrame([Row(**i) for i in data])
df.show()
df.write.mode("overwrite").json("wasbs://<file_system>@<storage-account-name>.blob.core.windows.net/demo/data")

响应:

[
    {
        "ProductID": "156528","ProductType": "Home Improvement","Description": "","SaleDate": "0001-01-01T00:00:00","UpdateDate": "2015-02-01T16:43:18.247"
    },{
        "ProductID": "126789","ProductType": "Pharmacy","UpdateDate": "2015-02-01T16:43:18.247"
    }
]

尝试修复如下所示的模式。

from pyspark.sql.types import StructType,StructField,StringType
schema = StructType([StructField("ProductID",StringType(),True),StructField("ProductType","Description",StructField("SaleDate",StructField("UpdateDate",True)])
df = spark.createDataFrame([[None,None,None]],schema=schema)
df.show()

不确定如何创建数据框并将数据写入json文档。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)