You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载嵌套重复RECORD数据至BigQuery时遇ArrowTypeError问题求助

问题原因分析

你遇到的ArrowTypeError本质是数据类型不匹配:

  • BigQuery中REPEATED RECORD类型对应的Python数据结构是嵌套字典组成的列表(比如[{"key1": val1}, {"key2": val2}]),需要的是可被Arrow识别的结构化数据。
  • 你把customTitles转成JSON字符串后,该字段变成了单一的字符串类型(比如"[{\"key1\": val1}, {\"key2\": val2}]"),Arrow加载时会尝试将这个字符串解析为BigQuery的重复记录,但字符串的起始字符[不符合它期待的键值对元组格式,因此抛出错误。
解决方案

直接用结构化数据而非JSON字符串存入DataFrame,两种场景的处理方式:

场景1:直接从API响应提取数据

不要对customTitles做JSON序列化,直接保留原始的嵌套列表结构:

import pandas as pd

# 假设api_response是API返回的JSON数组
processed_data = []
for item in api_response:
    processed_row = {
        # 提取4个普通字段
        "field1": item["field1"],
        "field2": item["field2"],
        "field3": item["field3"],
        "field4": item["field4"],
        # 直接保留customTitles的原始嵌套列表
        "customTitles": item["customTitles"]
    }
    processed_data.append(processed_row)

df = pd.DataFrame(processed_data)
# 此时df['customTitles']的类型是list,可直接加载到BigQuery

场景2:已将customTitles转为JSON字符串

需要先将JSON字符串解析回Python的嵌套列表结构:

import pandas as pd
import json

# 假设df是已包含JSON字符串格式customTitles的DataFrame
df["customTitles"] = df["customTitles"].apply(json.loads)
# 解析后字段恢复为嵌套列表,可正常加载到BigQuery

内容的提问来源于stack exchange,提问作者Amar Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:15:40