首页 > 解决方案 > BigQuery 联合数据源:命令行界面中的 CSV 选项?

问题描述

当您使用命令行界面创建联合数据源时,是否可以指定加载选项,如字段分隔符、允许锯齿状行等?

bq mk --external_table_definition=column_1:STRING,column_2:STRING@CSV=gs://my-bucket/my_files*.csv my_dataset.my_table

当您在 Web UI 或 API 中设置联合表时,您可以访问所有 csv 选项,它们是否刚刚被排除在命令行工具之外?

标签: google-bigqueryfederated

解决方案


JSON您可以在表定义文件中指定这些选项。您可以在本文档中找到很多示例。对于您在问题中提出的问题,您JSON应该类似于以下内容:

{
  "schema": {
    "fields": [
      {
        "name": "column_1",
        "type": "STRING"
      },
      {
        "name": "column_2",
        "type": "STRING"
      }
    ]
  },
 "csvOptions": {
    "allowJaggedRows": true,
    "fieldDelimiter": "[DELIMITER]"
  },
  "sourceFormat": "CSV",
  "sourceUris": [
    "[BUCKET_URI]"
  ]
}

然后只需运行相同的命令并指定JSON file path而不是inline schema

bq mk --external_table_definition=[JSON_FILE_PATH] [YOUR_DATASET.YOUR_TABLE]

推荐阅读