Java 尝试启动ZetaSQL规划器时出错
我正在尝试使用SQL转换运行一个Beam管道,使用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
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>