Scio saveAsTypedBigQuery 写入 SCollection of Typed Big Query case class 的分区
Scio saveAsTypedBigQuery write to a partition for SCollection of Typed Big Query case class
我正在尝试使用以下方法将 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)
我得到的错误是
Table ID 必须是字母数字(加下划线)且长度最多为 1024 个字符。此外,不能使用 Table 装饰器。"
如何写入分区?我没有看到任何通过 saveAsTypedBigQuery 方法指定分区的选项,所以我正在尝试旧版 SQL table 装饰器。
参见:。您需要手动创建 table。 BQ IO 无法创建 table 并对其进行分区。
此外,没有 table 装饰器完全是一个诡计。这是我遗漏的字母数字部分。
col.saveAsTypedBigQuery(
tableSpec = "test.test$" + date.format(DateTimeFormatter.BASIC_ISO_DATE),
writeDisposition = WriteDisposition.WRITE_APPEND,
createDisposition = CreateDisposition.CREATE_NEVER)
我正在尝试使用以下方法将 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)
我得到的错误是 Table ID 必须是字母数字(加下划线)且长度最多为 1024 个字符。此外,不能使用 Table 装饰器。"
如何写入分区?我没有看到任何通过 saveAsTypedBigQuery 方法指定分区的选项,所以我正在尝试旧版 SQL table 装饰器。
参见:
此外,没有 table 装饰器完全是一个诡计。这是我遗漏的字母数字部分。
col.saveAsTypedBigQuery(
tableSpec = "test.test$" + date.format(DateTimeFormatter.BASIC_ISO_DATE),
writeDisposition = WriteDisposition.WRITE_APPEND,
createDisposition = CreateDisposition.CREATE_NEVER)