【问题标题】:infer avro schema for BigQuery table load推断 BigQuery 表加载的 avro 架构
【发布时间】:2018-08-23 14:26:26
【问题描述】:

我正在使用 java api,尝试将数据从 avro 文件加载到 BigQuery。 创建外部表时,BigQuery 会自动从 .avro 文件中检测架构。 在为要加载的数据创建常规 BigQuery 表时,是否可以在 GCS 中指定架构/数据文件?

提前谢谢你

【问题讨论】:

    标签: google-bigquery google-cloud-storage


    【解决方案1】:

    您可以使用configuration.load.schema 创建manually the schema definition,但是,文档说:

    当您加载 Avro、Parquet、ORC、Cloud Firestore 导出数据或 Cloud Datastore 导出数据时,BigQuery 会根据源数据推断架构。

    【讨论】:

    • 没错,BigQuery 会自动从 alphabetally last 文件中获取架构。因此,如果您有 filea.avro(带有字段 a 和 b)和 fileb.avro(带有字段 a 和 c),您正在加载一个加载作业 - BigQuery 将从两个文件中加载字段 a 和 c(在这种情况下,c 将对于 filea 中的行为 null)。此外,您可以指定一个模式,如 F10 所说,例如,如果您不想加载文件中的每一列,这可能会有所帮助。
    【解决方案2】:

    似乎问题在于该表已经存在,而我没有指定 CreateDisposition.CREATE_IF_NEEDED。 您根本不需要指定架构,就像外部表一样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多