程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Apache Spark Catalyst 解析器 SQL 异常大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Apache Spark Catalyst 解析器 SQL 异常?

开发过程中遇到Apache Spark Catalyst 解析器 SQL 异常的问题如何解决?下面主要结合日常开发的经验,给出你关于Apache Spark Catalyst 解析器 SQL 异常的解决方法建议,希望对你解决Apache Spark Catalyst 解析器 SQL 异常有所启发或帮助;

以下scala代码(你可以在scala工作表中运行)

import org.apache.spark.sql.catalyst.parser._
import org.apache.spark.sql.internal.sqlConf



val sqlParser = new CatalystsqlParser(sqlConf.get)

val query = """select col1 from table1;"""

//import sqlParser.astBuilder
val parsed = sqlParser.parseExpression(query)

//println(astBuilder.toString)
println(s"parsed: ${parsed.prettyJson}")

抛出看似荒谬的错误 -

org.apache.spark.sql.catalyst.parser.ParseException:
mismatched input 'from' expecTing {<EOF>,'-'}(line 1,pos 12)
== sql ==
select col1 from table1;
------------^^^
at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:266)
at org.apache.spark.sql.catalyst.parser.AbstractsqlParser.parse(ParseDriver.scala:133)
at org.apache.spark.sql.catalyst.parser.AbstractsqlParser.parseExpression(ParseDriver.scala:49)
... 37 elIDed

有人见过这个吗?我在 SO 上看到了错误消息,但这是一个非常简单的查询,不应以这种方式出错。

解决方法

@H_801_18@

我不熟悉直接调用 CatalystSqlParser,但 Sparksession.sql 方法似乎对您的查询感到满意。也许使用它适合您的需求?

以下内容解析成功:

val query = """select col1 from table1;"""
val df = spark.sql(query)

CatalystSqlParser 似乎不是 documented API 的一部分)。

大佬总结

以上是大佬教程为你收集整理的Apache Spark Catalyst 解析器 SQL 异常全部内容,希望文章能够帮你解决Apache Spark Catalyst 解析器 SQL 异常所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。