【发布时间】:2018-12-04 15:46:30
【问题描述】:
我正在用 Python 创建一个 Google 数据流模板:
query = "#standardSQL" + """
SELECT
Frame.Serial,
Frame.Fecha,
Frame.Longitud,
Frame.Latitud,
ARRAY_AGG (CONCAT (ID, '-', Valor) ORDER BY ID) AS Resumen
FROM <...>
TABLE_SCHEMA = 'Serial:STRING,Fecha:DATETIME,Longitud:STRING,Latitud:STRING,Resumen:STRING'
| 'Read from BQ' >> beam.io.Read(beam.io.BigQuerySource(query=query,dataset="xxx",use_standard_sql=True))
| 'Write transform to BigQuery' >> WriteToBigQuery('table',TABLE_SCHEMA)
问题
这失败了,因为 Resumen 字段是一个数组:
为非重复字段指定的数组。
我测试了什么
-
直接在 BigQuery UI 中使用以下语句创建表:
CREATE TABLE test (Resumen ARRAY<STRING>)这行得通。该表是使用以下内容创建的:
- 类型:
string - 模式:
Repeated
- 类型:
-
更改 TABLE_SCHEMA 并运行管道:
TABLE_SCHEMA ='Serial:STRING,Fecha:DATETIME,Longitud:STRING,Latitud:STRING,Resumen:ARRAY<STRING>'出现错误:
"Invalid value for: ARRAY\u003cSTRING\u003e is not a valid value".
TABLE_SCHEMA 应该如何创建表并与beam.io.WriteToBigQuery() 一起使用?
【问题讨论】:
标签: google-bigquery google-cloud-dataflow apache-beam