如何将地图转换为数据帧?

时间:2017-09-20 08:32:47

标签: scala apache-spark dictionary apache-spark-sql

m是如下地图:

scala> m
res119: scala.collection.mutable.Map[Any,Any] = Map(A-> 0.11164610291904906, B-> 0.11856755943424617, C -> 0.1023171832681312)

我想得到:

name  score
A  0.11164610291904906
B  0.11856755943424617
C  0.1023171832681312

如何获取最终的数据框?

1 个答案:

答案 0 :(得分:8)

首先将其转换为Seq,然后您可以使用toDF()函数。

val spark = SparkSession.builder.getOrCreate()
import spark.implicits._

val m = Map("A"-> 0.11164610291904906, "B"-> 0.11856755943424617, "C" -> 0.1023171832681312)
val df = m.toSeq.toDF("name", "score")
df.show

会给你:

+----+-------------------+
|name|              score|
+----+-------------------+
|   A|0.11164610291904906|
|   B|0.11856755943424617|
|   C| 0.1023171832681312|
+----+-------------------+