我正在尝试使用以下方法将SCollection写入Big Query中的分区:
import java.time.LocalDate
import java.time.format.DateTimeFormatter
val date = LocateDate.parse("2017-06-21")
val col = sCollection.typedBigQuery[Blah](query)
col.saveAsTypedBigQuery(
tableSpec = "test.test$" + date.format(DateTimeFormatter.ISO_LOCAL_DATE),
writeDisposition = WriteDisposition.WRITE_EMPTY,
createDisposition = CreateDisposition.CREATE_IF_NEEDED)
我得到的错误是 表ID必须是字母数字(加上下划线),且最长不得超过1024个字符。此外,不能使用表装饰器。“
如何写入分区?我没有看到任何通过saveAsTypedBigQuery方法指定分区的选项,所以我尝试使用Legacy SQL表装饰器。
答案 0 :(得分:2)
请参阅:BigqueryIO Unable to Write to Date-Partitioned Table。您需要手动创建表。 BQ IO无法创建表并对其进行分区。
此外,没有表装饰器是一个完整的诡计。它是我失踪的字母数字部分。
col.saveAsTypedBigQuery(
tableSpec = "test.test$" + date.format(DateTimeFormatter.BASIC_ISO_DATE),
writeDisposition = WriteDisposition.WRITE_APPEND,
createDisposition = CreateDisposition.CREATE_NEVER)