Scio TypeSafe BigQuery 是否支持 with 子句

Does Scio TypeSafe BigQuery support with clauses

val query = s"""#standardsql
     | WITH A AS (SELECT * FROM `prefix.andrews_test_table` LIMIT 1000)
     | select * from A"""

@BigQueryType.fromQuery(query)
class Test

一直给我 :40: error: Missing query。一旦我关闭 legacySql 模式,此查询在 BigQuery 中运行良好。我不应该期望在 BigQuery 中运行的每个查询都能与 TypeSafe BigQuery 一起使用吗?

运行 你的查询和输出到一个临时的 table,然后在 scio 的 repl 中做

@BigQueryType.fromTable("prefix.andrews_test_table_limited")
class Clazz

Clazz.toPrettyString(2)

应该输出

@BigQueryType.toTable
case class Clazz(
.....
)

然后您可以将其用作您的类型。我的解决方案改编自:https://github.com/spotify/scio/wiki/FAQ#how-to-make-intellij-idea-work-with-type-safe-bigquery-classes