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

to_date不正常運行後引入任意replaceWhere磚9.1 LTS

kolangareth
新的貢獻者三世

我想做一個動態分區覆蓋在三角洲表使用replaceWhere選項。這是工作正常,直到我升級9.1 DB運行時從8.3.x LTS。我是連接“年”、“月”和“天”列,然後使用to_date函數定義replaceWhere條件。我能找到在文檔中有一個新特性添加9.1 LTS -的一部分三角洲現在支持任意replaceWhere。可能這也引入了一個錯誤。我使用的火花conf設置回退到舊的行為。

spark.conf.set (“spark.databricks.delta.replaceWhere.dataColumns.enabled”,假)

但是會很高興有一個更好的解決這個問題。這是我與replaceWhere寫聲明。

dataframeToWrite.write.format(“δ”).mode(“覆蓋”).partitionBy(“年”、“月”、“日”)。選項(“replaceWhere”s”to_date (concat(“-”,月,“-”,天))(datesList美元)”).save (outputLocation)

錯誤信息:

引起的:org.apache.spark。SparkException:工作階段失敗而終止:任務0階段11.0失敗了4次,最近的失敗:在舞台上失去了任務0.3 11.0 (TID 13) (): . lang。UnsupportedOperationException:方式不能生成代碼表達式:to_date (concat((# 2810年作為字符串),,(月2863 #字符串),,演員(作為字符串)天# 2916),沒有一個)

PS:我也試圖在to_date指定格式,但也沒有幫助。

1接受解決方案

接受的解決方案

werners1
尊敬的貢獻者三世

奇怪,

你試圖創建一個列to_date dataframe,所以不在replaceWhere條件?

df2 = df1.withColumn (to_date (…,"yyyyMMdd")) something like that

在原帖子查看解決方案

9回複9

匿名
不適用

嗨@Prasanth Kolangareth——歡迎並感謝您的問題。我很抱歉聽到你的煩惱。讓我們給社區回應的機會。謝謝你的耐心。

werners1
尊敬的貢獻者三世

奇怪,

你試圖創建一個列to_date dataframe,所以不在replaceWhere條件?

df2 = df1.withColumn (to_date (…,"yyyyMMdd")) something like that

kolangareth
新的貢獻者三世

嗨@Werner Stinckens, to_date函數沒問題其他地方像過濾器一樣,withColumn等等。如果你想創建一個新的列dataframe replaceWhere然後使用它——這不是我想做的事情,因為這樣做我必須在目標三角洲表添加新列。

werners1
尊敬的貢獻者三世

我唯一想replaceWhere不能表達式,表達式是錯誤的。

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

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

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

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

Baidu
map