【问题标题】:scala Map[(String, String),Int] to build corresponding MAP[String,String]scala Map[(String, String),Int] 构建对应的 MAP[String,String]
【发布时间】:2016-07-13 23:45:56
【问题描述】:

如何转化:

(Map(UserLang -> en, UserName -> a),1)
(Map(UserLang -> jp, UserName -> b),1)

 (UserLang -> en, UserName -> a)
 (UserLang -> jp, UserName -> b)

如何通过函数式编程做到这一点

【问题讨论】:

    标签: scala functional-programming


    【解决方案1】:

    试试这样的:

    val map1: Map[(String, String),Int]
    val map2: Map[String, String] = map1.keySet.toMap
    

    .keySet 丢弃Int 并将您的Map[(String, String),Int] 转换为Set[(String,String)],然后您可以通过调用toMap 轻松转换为Map

    【讨论】:

    • 我正在使用 scala 在 spark 中执行此操作,您的示例至少让我知道如何在那里进行操作,谢谢 :)
    • 如果您扩展您的问题,我还可以在我的回答中添加更多详细信息:) 那么我们也可以帮助将来可能遇到此问题的人!
    • stackoverflow.com/questions/38333479/… 得到您的指针后,我可以使用以下代码分离想要的 MAP:topCounts60.foreachRDD( rdd => { for(item
    • 也许你应该把它放到你的问题中,或者随意编辑我的答案:)
    【解决方案2】:

    (Map(UserLang -> en, UserName -> a),1)(Map[String,String], Int) 类型,而不是问题标题中所述的 Map[(String,String),Int]

    对于前者,请尝试map(_._1)。对于后者,请尝试keys.toMap

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多