java - 尝试启动 ZetaSQL 规划器时出错

标签 java google-cloud-platform apache-beam beam-sql

我正在尝试运行带有 SQL 转换的 Beam 管道,并使用 ZetaSQL 进行解析。我从设置选项开始

options.setPlannerName("org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner");

当我尝试使用任何给定查询创建 SqlTransform 时,我得到

java.util.ServiceConfigurationError: org.apache.beam.repackaged.sql.com.google.zetasql.ClientChannelProvider: Provider org.apache.beam.repackaged.sql.com.google.zetasql.JniChannelProvider could not be instantiated
    at java.util.ServiceLoader.fail (ServiceLoader.java:232)
    at java.util.ServiceLoader.access$100 (ServiceLoader.java:185)
    at java.util.ServiceLoader$LazyIterator.nextService (ServiceLoader.java:384)
    at java.util.ServiceLoader$LazyIterator.next (ServiceLoader.java:404)
    at java.util.ServiceLoader$1.next (ServiceLoader.java:480)
    at org.apache.beam.repackaged.sql.com.google.zetasql.ClientChannelProvider.loadChannel (ClientChannelProvider.java:31)
...
    at org.apache.beam.sdk.extensions.sql.SqlTransform.expand (SqlTransform.java:82)
    at org.apache.beam.sdk.Pipeline.applyInternal (Pipeline.java:539)
    at org.apache.beam.sdk.Pipeline.applyTransform (Pipeline.java:473)
    at org.apache.beam.sdk.values.PCollection.apply (PCollection.java:357)
...

我已将以下相关依赖项添加到 maven 中的 POM 中:

        <dependency>
            <groupId>org.apache.beam</groupId>
            <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
            <version>2.15.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.beam</groupId>
            <artifactId>beam-sdks-java-extensions-sql</artifactId>
            <version>2.16.0</version>
        </dependency>

我还缺少其他东西吗?

最佳答案

不幸的是,ZetaSQL 规划器目前无法在 MAC 或旧版本的 Linux 上运行。请参阅 Rui 的评论:

ZetaSQL Sample Using Apache beam

看起来这个 PR 在这里可能有用(我还没有深入研究这一点来确认):

https://github.com/google/zetasql/pull/3

作为解决方法,您可以尝试使用较新版本的 Linux 吗?也许在容器中?

关于java - 尝试启动 ZetaSQL 规划器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165775/

相关文章:

java - 是否可以在没有输入文件的情况下在 Hadoop 集群上运行 map/reduce 作业?

java - 禁用apache LogFactory和Log的自动导入

java - 如何覆盖 Java SWT FileDialog 类的打开按钮

java - 从 Compute Engine 发布到 Cloud Pub/Sub 主题时的 DEADLINE_EXCEEDED

java - Dataflow JAVA SDK : Take the code as an input, 后台进程

google-cloud-platform - BigQueryIO - 不能将 DynamicDestination 与 CREATE_IF_NEEDED 一起用于无界 PCollection 和 FILE_LOADS

java - Eclipse 条件断点损坏了吗?

javascript - 上传后文件内容错误

google-cloud-platform - 最小实例 Google Cloud Run

java - 使用状态处理计算 Apache Beam 中的增量