首页 > 解决方案 > 在数据块中加载 json 响应以触发数据帧时获取 _corrupt_record

问题描述

我一直在尝试从https://anapioficeandfire.com/获取数据并将其加载到 spark 数据框。一切正常,直到我到达字符 #1173 并且出现 _corruptedrecord 错误

(AnalysisException:从 Spark 2.3 开始,当引用的列仅包含内部损坏记录列时,不允许来自原始 JSON/CSV 文件的查询)

我认为它与别名列中的转义字符有关,尽管我不知道如何解决它。

我的部分代码如下。这应该足以解决错误。也许有人已经解决了这个问题?

import json
import requests

def send_request(api_object):
  
  page = 1173
  url = 'https://anapioficeandfire.com/api/'
  
  req = url + api_object + '?page=' + str(page)+ '&pageSize=1'
  response = requests.get(req)
  results = response.json()
  
  return results 

dbutils.fs.put("books.json",  str(send_request('characters')), True) 
df = spark.read.json("books.json", multiLine=True)
#df = spark.read.json(sc.parallelize([send_request('characters')]))
display(df)

send_request('characters')

标签: pythonjsonapache-sparkpysparkdatabricks

解决方案


推荐阅读