Java 使用apachebeam的ZetaSQL示例

Java 使用apachebeam的ZetaSQL示例,java,google-cloud-platform,apache-beam,beam-sql,Java,Google Cloud Platform,Apache Beam,Beam Sql,我在ApacheBeam框架(2.17.0-SNAPSHOT)中使用ZetaSQL时遇到了一些问题。在浏览了ApacheBeam的文档之后,我找不到ZetaSQL的任何示例 我尝试添加计划器: options.setPlannerName(“org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner”) 但仍然面临这个问题,下面添加了这个代码片段以寻求帮助 ``` String sql =

我在ApacheBeam框架(2.17.0-SNAPSHOT)中使用ZetaSQL时遇到了一些问题。在浏览了ApacheBeam的文档之后,我找不到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();

更新:截至2020年6月23日,Mac OS上也支持Beam ZetaSQL(不是所有版本,但至少是最新版本)

====


我认为这与你的操作系统有关。Beam是一个统一的框架,但您的异常是从它的依赖项ZetaSQL解析器中看到的。如果您更换到较新版本的linux,我认为您的代码片段应该可以工作。

您好!你的操作系统是什么?ZetaSQL不适用于Mac和非常旧的Linux版本。嗨,@RuiWang,因为ApacheBeam是统一的框架,所以它并不重要。我想在Beam SQL代码中使用ZetaSQL Planner而不是方解石。因为像方解石一样,我们有一个类似的例子,ZetaSQL Planner是否有任何参考。我对您的特定例外进行评论,因为我怀疑它与您的操作系统有关。Beam是统一框架,但您的例外情况是从其依赖项:ZetaSQL解析器来看的。如果您更改为较新版本的linux,我认为您的代码段应该可以工作。@后座议员,您介意让我们知道Rui Wang提出的建议是否适用于您吗?谢谢您好,row_number()函数在Beam SQL中可用吗?
    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)