TableRow 对象未在 dataFlow 作业中返回记录类型列
Posted
技术标签:
【中文标题】TableRow 对象未在 dataFlow 作业中返回记录类型列【英文标题】:TableRow object not returning Record type columns in dataFlow Job 【发布时间】:2016-08-19 21:07:18 【问题描述】:当我使用 DataFlow 作业执行 BigQuery 查询时,我得到的 TableRow 对象不会返回那些记录类型列(展平)
Java 代码:
p.apply(BigQueryIO.Read.fromQuery(getQuery()))
查询:
选择 BASM.,BAS. FROM (选择 user_ids.rmId AID, id, user_ids.regis, segment_id from(FLATTEN([data.base_audience_segment_map20160817], user_ids.rmId))) BASM 加入 (从 [data.base_audience_segments] 中选择类别、子类别、类型、名称、segment_id、last_compute_day、描述)BAS 在 BASM.segment_id=BAS。 segment_id order by BASM.AID,BASM.id limit 100
如果您在上面的查询中看到 user_ids.rmId 是一个可重复记录类型列。
提前致谢
【问题讨论】:
【参考方案1】:我认为默认行为是,如果您的查询为某个列返回空值,那么该列在 TableRow 对象下将不可见
【讨论】:
【参考方案2】:您可能想使用BigQueryIO
without result flattening。
p.apply(BigQueryIO.Read
.fromQuery(getQuery())
.withoutResultFlattening())
【讨论】:
以上是关于TableRow 对象未在 dataFlow 作业中返回记录类型列的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BigQuery 插入错误时崩溃/停止 DataFlow Pub/Sub 摄取