【问题标题】:get element from map column via key in scala spark通过scala spark中的键从地图列中获取元素
【发布时间】:2021-10-29 16:04:25
【问题描述】:

我想从数据框上的地图列创建一个新列, 我在 spark 中没有发现任何关于通过 key 访问值的信息

所以我为此编写了自己的 udf

def getMap(m:Map[Int,Int],key:Int):Option[Int]={
m.get(key)
}
val getMapUdf= udf(getMap _)

此解决方案简单但未广泛使用 我希望一个 func 可以获得泛型类型的 getMap 函数 像这样(失败)

import scala.reflect.runtime.universe.TypeTag
def getMapG[K:TypeTag,V:TypeTag](m:Map[K,V],key:K]:Option[K]
val getMapGUdf= udf(getMapG _)

我的环境

spark-v 2.4.5 scala-v 2.11.12

我的预期是这样的

df.withColumn("value_of_key1",getMapG(col("map_col"),col("key1")))

非常感谢

【问题讨论】:

    标签: scala apache-spark apache-spark-sql user-defined-functions


    【解决方案1】:

    有一个内置函数element_at

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2014-09-30
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多