我在Apache Beam Framework(2.17.0-SNAPSHOT)中使用ZetaSQL时遇到问题。看完Apache梁的文档后,我找不到ZetaSQL的任何示例。

我试图添加计划程序:
        options.setPlannerName("org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner");

但是仍然面临问题,以下添加了代码段以寻求帮助。

    ```
    String sql =
                    "SELECT CAST (1243 as INT64), "
                        + "CAST ('2018-09-15 12:59:59.000000+00' as TIMESTAMP), "
                        + "CAST ('string' as STRING);";

      ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner();
            BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql);
            PCollection<Row> stream = BeamSqlRelUtils.toPCollection(p, beamRelNode);
    p.run();


我了解我们需要以下代码段,但未能创建配置
       Frameworks.newConfigBuilder()

在运行代码时,我发现以下异常:

    Exception in thread "main" java.util.ServiceConfigurationError: com.google.zetasql.ClientChannelProvider: Provider com.google.zetasql.JniChannelProvider could not be instantiated
        at java.util.ServiceLoader.fail(Unknown Source)
        at java.util.ServiceLoader.access$100(Unknown Source)
        at java.util.ServiceLoader$LazyIterator.nextService(Unknown Source)



最佳答案

我认为这与您的操作系统有关。 Beam是一个统一的框架,但是您的例外情况是从其依赖项开始的:ZetaSQL解析器。如果您更改为较新版本的linux,我认为您的代码段应该可以使用。

10-02 08:05