gpt4 book ai didi

java - 在 PubSubToBigQuery 模板中定义 TableSchema

转载 作者:行者123 更新时间:2023-12-02 05:28:19 27 4
gpt4 key购买 nike

我在 Google 的 Dataflow 模板中指定用于读取 pub-sub 订阅并流式传输到 BigQuery 的 TableSchema 时遇到问题。
此处提供模板 - https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/templates/PubSubToBigQuery.java

根据此处的文档 - https://beam.apache.org/documentation/io/built-in/google-bigquery/#creating-a-table-schema

我尝试添加 TableSchema 以匹配我在 BigQuery 中的目的地

/** Define Table Schema */
TableSchema schema = new TableSchema()
.setFields(
ImmutableList.of(
new TableFieldSchema()
.setName("device_id")
.setType("STRING")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("timestamp")
.setType("TIMESTAMP")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("orientation")
.setType("FLOAT")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("orientation")
.setType("STRING")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("light_level")
.setType("FLOAT")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("temperature")
.setType("FLOAT")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("button_pressed")
.setType("BOOLEAN")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("city")
.setType("STRING")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("region")
.setType("string")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("lat")
.setType("STRING")
.setMode("NULLABLE"),
new TableFieldSchema()
.setName("long")
.setType("string")
.setMode("NULLABLE")));

这是我在尝试编译时遇到的错误。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile (default-compile) on project google-cloud-teleport-java: Compilation failure [ERROR] /home/jquattlebaum/DataflowTemplates/src/main/java/com/google/cloud/teleport/templates/PubSubToBigQuery.java:[131,5] cannot find symbol [ERROR] symbol: class TableSchema [ERROR]
location: class com.google.cloud.teleport.templates.PubSubToBigQuery

最佳答案

当您没有正确设置依赖项时,通常会发生类似的情况。 IE。您的项目(模板)必须声明一个具有 TableSchema 定义的依赖项然后你必须在你的java文件中添加相应的导入语句( PubSubToBigQuery.java )。

依赖声明可能发生在 pom.xml如果您没有对其进行太多修改,它应该已经包含 TableSchema 的正确依赖项,google-api-services-bigquery图书馆:https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/pom.xml#L258 .

如果是这样,请确保您有 import com.google.api.services.bigquery.model.TableSchemaPubSubToBigQuery.java 的顶部.

然后确保你这样做 mvn clean或者在再次构建之前从 IDE 中清理项目。

如果这没有帮助,我会在某个地方寻找拼写错误。

关于java - 在 PubSubToBigQuery 模板中定义 TableSchema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com