google-bigquery - 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 选项,它们是否刚刚被排除在命令行工具之外?
解决方案
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]
推荐阅读
- laravel - 如何在 laravel 集合中计数?
- wordpress - 提交表单后 gform_after_submission 不会触发
- r - 调整 ggplot 上的数字标签,同时保持图形看起来相同
- database - Firestore订单文件如何
- python - 涉及 SQLite 3 的错误阻止我正确添加到数据库
- r - 如何在现有地块上叠加一个框?
- javascript - 根据模式验证数据的 Javascript 函数
- mysql - 使用 MySQL 更改值输出/修剪特定值之前和之后的所有文本
- hive - 如何通过节俭客户端在 Hive 独立元存储服务器上运行 MSCK
- ssh - 使用 SSH 将第二个 repo 克隆到 config.yml circleci 时出错