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

火花設置SQL倉庫

najmead
新的貢獻者三世

我運行一個查詢,試圖解析字符串映射,得到以下錯誤;

org.apache.spark。SparkRuntimeException:重複映射鍵被發現,請檢查輸入數據。如果你想刪除重複的鍵,可以設置“spark.sql。mapKeyDedupPolicy”到“LAST_WIN”這樣的關鍵插入最後優先。

不用擔心,所以我試著改變這個設置;

設置spark.sql.mapKeyDedupPolicy = LAST_WIN

並得到以下錯誤;

TStatus (statusCode: ERROR_STATUS infoMessages: [* org.apache.hive.service.cli。HiveSQLException:錯誤運行查詢:org.apache.spark.sql。spark.sql AnalysisException:配置。mapKeyDedupPolicy不可用:155:154,

這是當使用一個通用的集群,但是使用一個SQL倉庫時不起作用。所以我怎麼改變這個設置在SQL倉庫集群?如果這是不可能的,我怎麼繞過這個錯誤? x

2回答2

匿名
不適用

@Maryam Najafian:

你得到這個錯誤的原因是spark.sql。mapKeyDedupPolicy配置不可用在SQL倉庫集群。這個配置是特定於火花不支持集群和倉庫在SQL。

要解決這個錯誤,你可以試著用另一種方法將字符串解析到一個地圖。一種方法是把字符串分割成一個鍵值對數組,然後使用map_from_arrays函數將數組轉換成一個地圖。這裏有一個例子:

選擇map_from_arrays(變換分割(“key1: value1, key2: value2, key3: value3 ', ', '), x - >分裂(x ': ')))

在這個例子中,我們首先將輸入字符串分割成數組的鍵-值對使用分屏功能。然後我們把這個數組創建一個數組的數組,其中每個內部數組包含兩個元素(鍵和值)。最後,我們使用map_from_arrays函數創建一個地圖數組的數組。

注意,這種方法假定輸入字符串的格式是正確的,不包含重複的鍵。如果輸入數據可能包含重複的鍵,您可以添加額外的邏輯來處理這種情況下,如使用array_distinct函數之前刪除重複的鍵將數組轉換為地圖。

Vidula_Khanna
主持人
主持人

嗨@Nicholas米德

謝謝你的問題!幫助你更好的,請花一些時間來檢查答案,讓我知道它是否最適合您的需要。

請幫助我們選擇最好的解決方案通過點擊“選擇最佳”如果它。

您的反饋將幫助我們確保我們提供最好的服務給你。

謝謝你!

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

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

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

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

Baidu
map