scala 将Map列表转换为 Dataframe

esbemjvw  于 2023-02-04  发布在  Scala
关注(0)|答案(1)|浏览(262)

我有以下数据:

d = Some(List(Map(id -> 1, n -> Hi), Map(id -> 2, n -> Hello)))

我想将其转换为如下所示的 Dataframe :

+--------+
|id|n    |
+--------+
|1 |Hi   |
+--------+
|2 |Hello|
+--------+

我尝试了以下方法:

import spark.implicits._

val df = d
  .map( m => (m.get("id"),m.get("n")))
  .toDF("id", "n")

但我得到:

error: value get is not a member of Any
  .map( m => (m.get("id"),m.get("n")))
but5z9lq

but5z9lq1#

这里你的最高级别是选项,我想这就是为什么你不能用一张Map来处理它的原因。我设法用这样的东西来做:

import spark.implicits._

val d = Some(List(Map("id" -> "1", "n" -> "Hi"), Map("id" -> "2", "n" -> "Hello")))

val data = d.fold (List.empty [(Option [String], Option [String])]) (_.map (m => (m.get ("id"), m.get ("n"))))

val df = data.toDF("id", "n").show()

输出:

+---+-----+
| id|    n|
+---+-----+
|  1|   Hi|
|  2|Hello|
+---+-----+

相关问题