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

为什么我得到的是Set[字符]而不是Set[字符串]?

  •  0
  • user3121051  · 技术社区  · 6 年前

    我试图从文本输入中创建一个键值对,其中键是字符串,值是 Set[String] .但我想我 Set[Char] 。 我的代码是:

    val newRdd = textFile.map(x => (x.split("\t")(1), x.split("\t")(2).toSet)).reduceByKey(_++_)
    

    我想要的是成对的:

    (标题1,套(m1))

    但我得到的是:

    (标题1,套(m,1))

    输入如下:

    1  title1  m1
    

    有人知道为什么会这样吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   user9700232    6 年前

    因为 String 本质上是 Seq[Char] toSet is :

    def toSet[B >: Char]: Set[B] 
    

    您可能想要:

    map(x => (x.split("\t")(1), Set(x.split("\t")(2)))