3

以下のコードを使用して、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",
        "Description": "",
        "SaleDate": "0001-01-01T00:00:00",
        "UpdateDate": "2015-02-01T16:43:18.247"
    }
]

以下のようにスキーマを修正しようとしています。

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

データフレームを作成してjsonドキュメントにデータを書き込む方法がわかりません。

4

1 に答える 1