首页 > 解决方案 > Spark SQL - org.apache.spark.sql.AnalysisException

问题描述

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

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

PScurrent_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)```

标签: apache-sparkapache-spark-sqldatabricksazure-databricks

解决方案


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

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

对于斯卡拉

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

current_date 函数可用的地方。

from pyspark.sql import functions as F

用于 pyspark


推荐阅读