我想在 BigQuery 的单个列中存储一个字符串值数组。为此,我需要先创建一个具有正确模式的表。该数组的模式标识符是 ARRAY<T>
其中 T
是数据类型。
例如:T
替换为 INT64
作为ARRAY<INT64>
在该列中启用 64 位整数数组的存储。除了存储字符串值,我应该如何获得相同的效果?我已经试过了 STRING
, VARCHAR
和 CHAR
.
只需提及:我使用的是最新的 google-cloud
python 包
最佳答案
为了添加一个包含数组数据的列,您需要将该列的模式定义为REPEATED
。因此,示例架构最终为:
{
'name': 'array_of_strings',
'type': 'STRING',
'mode': 'REPEATED'
},{
'name': 'array_of_floats',
'type': 'FLOAT',
'mode': 'REPEATED'
}
这使得该字段保存数组值。
注意:您应该知道,如果这是表的架构,那么您不能使用大查询的 CSV 导入功能,因为这是 CSV 文件格式的限制。您将需要使用 json
或 avro
格式。
关于python - 如何将 "array of strings"添加为 BigQuery 的架构值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45315063/