为什么我得到的是 Set[Char] 而不是 Set[String]?

Why am i getting Set[Char] instead of Set[String]?

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

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

我想要的是这样的对:

(title1, Set(m1))

但我得到:

(title1, Set(m,1))

输入是这样的:

1  title1  m1

有谁知道为什么会这样?

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

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

您可能想要:

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