如何使用第一行的列名将 CSV 导入 BigQuery 上的现有表?

Posted

技术标签:

【中文标题】如何使用第一行的列名将 CSV 导入 BigQuery 上的现有表?【英文标题】:How to import CSV to an existing table on BigQuery using columns names from first row? 【发布时间】:2017-07-17 23:23:21 【问题描述】:

我有一个 python 脚本,它执行 gbq 作业以将 csv 文件从 Google 云存储导入到 BigQuery 上的现有表。 如何设置作业属性以导入 csv 文件第一行中提供的正确列? 我将参数“allowJaggedRows”设置为 TRUE,但它会按顺序导入列,而不考虑 csv 文件标题中的列名。

【问题讨论】:

【参考方案1】:

当您将 CSV 导入 BigQuery 时,列将按照 CSV 显示它们的顺序进行映射 - 第一行(标题)不会对后续行的读取顺序产生任何影响。

需要注意的是,如果您要导入 JSON 文件,那么 BigQuery 将使用每列的名称,而忽略顺序。

【讨论】:

我改用了 json 文件。我还将“allowJaggedRows”设置为 TRUE,因为我缺少列。但是,当我执行我的 python 代码时,我收到一个错误“并非所有参数都在字符串格式化期间转换”。似乎它不允许在 json 文件中缺少列。

以上是关于如何使用第一行的列名将 CSV 导入 BigQuery 上的现有表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用输入用户的列名将数据插入数据库

Pandas:如何比较导入的 csv 文件的列以确保它们相同?

使用条件从 CSV 文件中删除一行

mysql 导入 csv文件中数据,只能导入第一行

我的 php 代码只是将我的 csv 文件的第一行导入数据库

LOAD DATA LOCAL,如何跳过第一行?