取消
顯示的結果
而不是尋找
你的意思是:

org.apache.spark.sql。AnalysisException:未定義的函數:‘麥克斯’

TylerTamasaucka
新的因素

我試圖創建一個JAR, Azure磚工作,但一些代碼,當使用筆記本接口不工作當調用庫通過一份工作。奇怪的是,這項工作將完成第一個成功運行但在任何後續運行時,它就會失敗。我重新啟動我的集群上運行然後它會再次失敗第二次。

我已經創建了一個視圖dataframe:

val df = spark.read.parquet(路徑)df.createOrReplaceTempView(表1)

然而,當我去查詢視圖和一個聚合函數產生一個錯誤:

val get_max_id_array =火花。sql(“選擇馬克斯(% s)從表1”.format (get_id_column_array(0)))當代()

錯誤:

從用戶代碼:錯誤未捕獲throwable org.apache.spark.sql。AnalysisException:未定義的功能:“MAX”。這個函數既不是注冊臨時函數也不是一個永久的函數注冊數據庫中的“默認”。1號線pos 7

4回複4

shyam_9
價值貢獻
價值貢獻

嗨@Tyler Tamasauckas,

請嚐試為馬克斯(df (column_name))請看看以下有關max函數的博客

https://www.programcreek.com/scala/org.apache.spark.sql.functions.max

omprakash_scala
新的貢獻者二世

嗨@Tyler Tamasauckas,

我也麵臨同樣的問題與sql函數“上”和“散列”。

在罐子裏我們必須調用SparkSession.builder () .getOrCreate()或SparkContext.getOrCreate () API來獲取火花/ sparkcontext實例。

在罐子裏如果我們使用對象和主要()方法的方法,在第一次使用效果很好,後來就不知怎麼的. .奇怪的是失去的實例。不知道確切的原因。

周圍的工作是使用“對象. .擴展程序”的方法在罐子裏,那就是工作。

應用特征的方法是服用10秒更多的時間相比,對象和主要方法。這是第一次,也第一次活動。這是因為應用程序特征使用延遲初始化特性。適用於所有Scala應用程序。

如果我們仍然需要使用主方法的方法,引發實例定義為隱式和使用隱式無論我們使用該實例。

如。

對象SomeName {

def UserDefinedMethod(查詢:字符串)(隱式火花:SparkSession) = {spark.sql(查詢)}/ /這個UserDefinedMethod被隱式地火花。

def主要(args:數組[String]):單位= {

隱式val火花= SparkSession.builder () .getOrCreate ()

火花…

}

}

注意:對象擴展應用程序將參數從Scala 2.9開始。

Windoze
新的貢獻者二世

嗨,@(電子郵件保護)

你能告訴你有更多的問題,它的解決方案?

我們現在有一個類似的問題,工作沒有第二除了“未定義的功能:to_unix_timestamp運行。這個函數既不是內置/臨時函數…”,唯一的解決是重新啟動集群,我試圖改變我的主類”對象……擴展程序”的方法,但仍然沒有工作。

我在互聯網上搜索,發現這篇文章是唯一可能的線索,期待你的回應。

謝謝,

skaja
新的貢獻者二世

我試圖使用from_utc_timestamp函數時麵臨著類似的問題。我能從磚的筆記本但當我調用函數使用相同的功能在我的java jar在磚和運行工作,這是給下麵的錯誤。

AnalysisException:未定義的函數:from_utc_timestamp。這個函數既不是內置/臨時函數,也不是一個持久性函數spark_catalog.default.from_utc_timestamp資格。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map