繁体   English   中英

将 map 的列表转换为 dataframe

[英]Transform list of map to dataframe

我有以下数据:

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")))

您在这里的最高级别是 Option,我认为这就是您无法使用单个 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()

Output:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM