Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何从列表[Map[String,String]]中提取字段的最频繁值_Scala_Apache Spark - Fatal编程技术网

Scala 如何从列表[Map[String,String]]中提取字段的最频繁值

Scala 如何从列表[Map[String,String]]中提取字段的最频繁值,scala,apache-spark,Scala,Apache Spark,我有这些数据: val data = List(Map(event_id -> ABC, event_name -> visited, timestamp -> 1478187513, member_id -> 111, category -> web, field1 -> abc), Map(event_id -> DEF, event_name -> added, timestamp -> 1478187520, member

我有这些数据:

val data = List(Map(event_id -> ABC, event_name -> visited, timestamp -> 1478187513, member_id -> 111, category -> web, field1 -> abc), 
     Map(event_id -> DEF, event_name -> added, timestamp -> 1478187520, member_id -> 111),
     Map(event_id -> ABC, event_name -> visited, timestamp -> 1478187522, member_id -> 111, category -> web, field1 -> abc),
     Map(event_id -> ABC, timestamp -> 1478187618, member_id -> 111, category -> web, field1 -> abc))
我想提取最频繁的
事件名称
。在这种情况下,应该访问
。但是,必须考虑的是,并非所有
列表
的条目都有
事件名称
字段。我怎么做

如果我只需要提取任何
事件名称
,那么这就行了。但它并没有给我最常见的一个:

val event_name = data.collect{
    case map if map.keySet.contains("event_name") => map("event_name")
}.headOption.getOrElse("")
我还编写了这段代码,但它并不认为某些条目可能没有
事件名称

val event_name = data.map(l=>l("event_name")).groupBy(identity).maxBy(_._2.size)._1

试试
data.flatMap(u.get(“事件名称”))
@ukasz:你是这个意思吗<代码>数据.flatMap(u.get(“事件名称”)).groupBy(identity).maxBy(u.u 2.size)。1是的,这正是我的意思。您已接近解决方案:)