2017-11-19 11 views
0

これをかなり検索しましたが、自分の状況に適応できるものは見つかりませんでした。私はこのようなデータフレームを持っています:他の列からApache Sparkでマップ列を作成

+-----------------+---------------+ 
|    keys|   values| 
+-----------------+---------------+ 
|[one, two, three]|[101, 202, 303]| 
+-----------------+---------------+ 

キーには文字列の配列があり、値にはintの配列があります。

私はそうのようなキーと値のマップを含む新しい列を作成したい:私はこの質問を見てきたが、わからない、それはのための出発点として使用することができます

+-----------------+---------------+---------------------------+ 
|    keys|   values|      map| 
+-----------------+---------------+---------------------------+ 
|[one, two, three]|[101, 202, 303]|Map(one->101, two->202, etc| 
+-----------------+---------------+---------------------------+ 

を私の状況:Spark DataFrame columns transform to Map type and List of Map Type

私はScalaでこれを必要とします。

ありがとうございます!

答えて

0

リンクされた問題の一つに類似したUDFを作成することができます。

val toMap = udf((keys: Seq[String], values: Seq[Int]) => { 
    keys.zip(values).toMap 
    }) 

としてそれを使用するよりも:

df.withColumn("map", toMap($"keys", $"values")) 
関連する問題