Google bigquery Bigquery:将查询结果追加到表时如何保留重复属性

Google bigquery Bigquery:将查询结果追加到表时如何保留重复属性,google-bigquery,Google Bigquery,我有一个BQ表,其中一列是重复类型,我正在尝试使用Google App Engine中的Python客户端库创建一个新表,其中一些列重新计算并添加了更多的列 使用下面的配置,副本可以工作,但是参数列(源表中的重复列)被展平为多行。如何保持列的重复性?我们知道这是可能的,因为WebUI可以做到这一点,但我找不到任何关于如何使用Python客户端库实现这一点的文档 query_sql = """ SELECT _id,app_name,user,source,function,arguments,s

我有一个BQ表,其中一列是重复类型,我正在尝试使用Google App Engine中的Python客户端库创建一个新表,其中一些列重新计算并添加了更多的列

使用下面的配置,副本可以工作,但是
参数
列(源表中的重复列)被展平为多行。如何保持列的重复性?我们知道这是可能的,因为WebUI可以做到这一点,但我找不到任何关于如何使用Python客户端库实现这一点的文档

query_sql = """
SELECT _id,app_name,user,source,function,arguments,startT,deltaT,ip_addr,location,session,agent FROM 
  (select _id, app_name,user,'server' as source, function,arguments,startT,deltaT,ip_addr,'eng.example.com' as location,session,agent from [probe_data.mini_probe_data] 
      where app_name = 'smeng' 
      and user is not null 
      and not function contains 'ajax'), 
  (select _id, app_name,user,'browser' as source,function,arguments,startT,deltaT,ip_addr,'eng.example.com' as location,session,agent from [probe_data.mini_probe_data] 
      where app_name = 'smeng' 
      and user is not null 
      and function contains 'ajax'),
"""
jobData = {
    "projectId": project_id,
    "configuration": {
        "query": {
            "query": query_sql,
            "destinationTable": {
                "projectId": project_id,
                "datasetId": dataset_id,
                "tableId": tbl_dst,
            },
            "createDisposition": "CREATE_IF_NEEDED",
            "writeDisposition": "WRITE_APPEND",
        }
    }
}
为了澄清起见,
writeDisposition
需要是
WRITE\u APPEND
,因为我将合并多个表中的数据,但这是为了以后该部分工作时使用


我已经阅读了大多数关于通过客户端API复制和转换BigQuery表的文档,例如on和,等等。

我认为您需要添加FlattResults:False以确保查询结果不被展平

从文件中:

作业[].configuration.query.results

布尔值

[可选] 展平查询结果中的所有嵌套和重复字段。这个 默认值为true。如果设置了此选项,allowLargeResults必须为true 这是错误的