Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试启动ZetaSQL规划器时出错_Java_Google Cloud Platform_Apache Beam_Beam Sql - Fatal编程技术网

Java 尝试启动ZetaSQL规划器时出错

Java 尝试启动ZetaSQL规划器时出错,java,google-cloud-platform,apache-beam,beam-sql,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.zeta

我正在尝试使用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>

org.apache.beam
谷歌云数据流java
2.15.0
org.apache.beam
beam SDK java扩展sql
2.16.0

这里还有什么我遗漏的吗?

不幸的是,ZetaSQL planner今天无法在MAC或更旧版本的Linux上运行。请参见Rui的评论:

看起来这个公关在这里可能有用(我还没有深入挖掘来证实):


作为一种解决方法,您可以在较新版本的linux上试用吗?可能在容器中?

最新版本的ZetaSQL解决了这一问题,该版本将与Beam 2.21一起使用。您还可以尝试下载更新版本的ZetaSQL(至少2020.03.2):


com.google.zetasql
zetasql jni通道
2020.03.2
    <dependency>
        <groupId>com.google.zetasql</groupId>
        <artifactId>zetasql-jni-channel</artifactId>
        <version>2020.03.2</version>
    </dependency>