python - Pandas Dataframe 到 BigQuery 引发 NotImplementedError
问题描述
我一直在尝试将数据从 Pandas DataFrame 上传到 BigQuery 表,但我一直遇到新问题。
我正在采取以下步骤:
- 从 API 调用数据,我将响应分配给一个名为: 的变量
result[]
。此变量是嵌套字典的列表。 - 要将嵌套字典列表转换为数据框,我使用以下命令(使用“_”分隔:
new_df = json_normalize(result, sep='_')
- 结果看起来不错,并且似乎使用以下信息正确创建了数据框(请参阅第 4 点)
class 'pandas.core.frame.DataFrame'RangeIndex:833 个条目,0 到 832 列:137 个条目,card_billing_addr1 到 subscription_updated_at dtypes:bool(4),float64(17),int64(17),object(99) 内存使用: 868.9+ KB
- 现在是时候将 DataFrame 上传到 BigQuery,而不是使用 pandas-gbq 工具,我使用的是官方云文档并尝试使用以下代码行上传 DataFrame:
client = bigquery.Client()
dataset_ref = client.dataset('dataset_name')
table_ref = dataset_ref.table('table_name')
client.load_table_from_dataframe(new_df, table_ref).result()
之后我不断收到错误:
NotImplementedError: struct<key_1: string, key_2: string, ..., key_n: int64,>
我不知道从哪里开始解决这个问题。有没有人有解决方法或者更好的建议来解决这个问题?
解决方案
推荐阅读
- database - 嵌套的 FutureBuilder 与从数据库延迟加载的嵌套调用
- node.js - 无法更新 npm 包:ERR!代码 EEXIST
- javascript - 如何使用 Canvas JS 制作多个圆圈
- jenkins - dotCover 从 Jenkins 插件上传到声纳
- reactjs - 反应:我在尝试添加 Axios 调用的服务中有一个 try/catch 块,但我不确定将它放在哪里
- verilog - 生成具有许多嵌套案例的块
- angular - Angular selectRootElement 适用于应用程序而不是测试
- google-apps-script - 一个 IF 语句来确定启动哪个函数
- powershell - VBscript 无法在 Windows Insider 版本中将项目固定到任务栏
- ruby-on-rails - 如何使用 Sidekiq 服务器为同一个项目支持多个数据库(postgresql)?