Spark SQL - org.apache.spark.sql.AnalysisException

Posted

技术标签:

【中文标题】Spark SQL - org.apache.spark.sql.AnalysisException【英文标题】: 【发布时间】:2020-03-25 18:53:26 【问题描述】:

当我第二次在 Databricks 上运行 Spark 作业时出现下面描述的错误(第一次不太频繁)。 sql 查询只是从 DataFrame 执行 create table as select from 注册的临时视图。

第一个想法是在工作结束时spark.catalog.clearCache()(没有帮助)。 我还在 databricks 论坛上发现了一些关于使用 object ... extends App (Scala) 而不是 main 方法的帖子(再次没有帮助)

附: current_date() 是内置函数,应该自动提供(预期)

Spark 2.4.4、Scala 2.11、Databricks 运行时 6.2

org.apache.spark.sql.AnalysisException: Undefined function: 'current_date'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'.; line 21 pos 4
    at org.apache.spark.sql.catalyst.analysis.Analyzer$LookupFunctions$$anonfun$apply$15$$anonfun$applyOrElse$50.apply(Analyzer.scala:1318)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$LookupFunctions$$anonfun$apply$15$$anonfun$applyOrElse$50.apply(Analyzer.scala:1318)
    at org.apache.spark.sql.catalyst.analysis.package$.withPosition(package.scala:53)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$LookupFunctions$$anonfun$apply$15.applyOrElse(Analyzer.scala:1317)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$LookupFunctions$$anonfun$apply$15.applyOrElse(Analyzer.scala:1309)
    at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$2.apply(TreeNode.scala:279)
    at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$2.apply(TreeNode.scala:279)
    at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:76)```

【问题讨论】:

【参考方案1】:

current_date() 是内置函数,应该提供 自动(预期)

这种预期是错误的。你必须导入函数

对于斯卡拉

import org.apache.spark.sql.functions._

current_date 函数在哪里可用。

from pyspark.sql import functions as F

对于 pyspark

【讨论】:

我不需要在spark.sql()中导入这个函数 什么意思?编辑器自动导入功能?错误明确指出需要导入 我使用 spark.sql("SQL QUERY") (不是 Dataframe API),它包含 spark 内置函数。它预计火花(无代码编辑器)将导入 ITS 功能 是的,那么你是对的。但觉得缺少一些东西可能是安装或其他东西。可以发一下代码吗?

以上是关于Spark SQL - org.apache.spark.sql.AnalysisException的主要内容,如果未能解决你的问题,请参考以下文章

spark 对hbase 操作

spark-sql 与 spark-shell REPL 中的 Spark SQL 性能差异

1.Spark SQL基础—Spark SQL概述Spark SQL核心编程—DataFrameDataSet

学习笔记Spark—— Spark SQL应用—— Spark SQL简介环境配置

Spark SQL - org.apache.spark.sql.AnalysisException

Spark SQL - 在 Spark Streams 上部署 SQL 查询的选项