我有两列例如
Code Department
E. ECE
C. CSE
我想将其转换为地图类型,如下所示
Map( E -> ECE, C -> CSE)
注意 - 目前使用带有scala的spark 2.2。
答案 0 :(得分:2)
鉴于输入 dataframe 和架构如下所示
+----+----------+
|Code|Department|
+----+----------+
|E. |ECE |
|C. |CSE |
+----+----------+
root
|-- Code: string (nullable = true)
|-- Department: string (nullable = true)
你可以转换为rdd并将每一行转换为map map函数中的Map,最后收集为Map
df.rdd.map(row => (row.getString(0) -> row.getString(1))).collectAsMap()
这是您想要的输出
Map(E. -> ECE, C. -> CSE)
答案 1 :(得分:0)
如果可以直接使用withColumn
和map
函数,则无需转换为RDD。
df.withColumn("map", map('Code, 'Department))