代码之家  ›  专栏  ›  技术社区  ›  Frank

如何使用数据帧创建地图?

  •  -1
  • Frank  · 技术社区  · 7 年前

    显示()

    +-----------+-------------------+
    |id|                        name|
    +-----------+-------------------+
    |       1231|                aa |
    |       1232|                bb |
    |       1233|                cc |
    |       1234|                dd |
    |       1235|                 dd|
    |       1236|                 cc|
    +-----------+-------------------+
    

    “id”列是唯一的,现在我要创建一个映射,哪个键是“id”,值是“name”,如何通过scala实现?假定数据帧名称为df。

    val mapResult = df.map(...)
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   koiralo    7 年前

    您可以简单地转换为 rdd collectAsMap

    df.rdd.map(x => (x.getInt(0), x.getString(1))).collectAsMap()
    

    这会给你

    scala>  df.rdd.map(x => (x.getInt(0), x.getString(1))).collectAsMap()
    res0: scala.collection.Map[Int,String] = Map(1231 -> aa, 1234 -> dd, 1236 -> cc, 1233 -> cc, 1232 -> bb, 1235 -> dd)
    

    推荐文章