大佬教程收集整理的这篇文章主要介绍了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 上看到了错误消息,但这是一个非常简单的查询,不应以这种方式出错。
我不熟悉直接调用 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,请注明来意。