我是 Spark 的新手,并試圖弄清楚如何向 DataFrame 添加一列,其中的值是從 HashMap 獲取的,其中鍵是設定值的同一行上的另一個值。
例如,我有一個定義如下的地圖:
var myMap: Map<Integer,Integer> = generateMap();
我想向我的 DataFrame 添加一個新列,它的值是從這個地圖中獲取的,鍵是當前列的值。解決方案可能如下所示:
val newDataFrame = dataFrame.withColumn("NEW_COLUMN", lit(myMap.get(col("EXISTING_COLUMN"))))
我對這段代碼的問題是使用 col 函式不會回傳 Int 型別,就像我的 HashMap 中的鍵一樣。
有什么建議?
uj5u.com熱心網友回復:
您需要使用UDF。
val mapUDF = udf((i:Int)=>myMap.getOrElse(i,0))
val newDataFrame = dataFrame.withColumn("NEW_COLUMN", mapUDF(col("EXISTING_COLUMN")))
uj5u.com熱心網友回復:
從地圖創建一個資料框并加入它?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/376200.html
標籤:爪哇 阿帕奇火花 科特林 apache-spark-sql
下一篇:如何在繪制的羅盤周圍實作度數
