Scala:值拆分不是char的成员

时间:2014-02-18 17:48:38

标签: scala mapping

我正在尝试在Scala中编写字数统计程序。我使用字符串"file"

file.map( _.split(" ")).flatMap(word => (word, 1)).reduceByKey( _ + _ )

一直这样说:

  

值拆分不是Char的成员

无法弄清楚如何解决它!

2 个答案:

答案 0 :(得分:3)

当您在map上致电String时,它会被WrappedString包裹,并延伸AbstractSeq[Char]。因此,当您致电map时,就好像您是Seq Char而不是Seq String

请参阅以下链接,了解代码https://github.com/scala/scala/blob/v2.10.2/src/library/scala/collection/immutable/WrappedString.scala

下面的代码按空格分割并返回大小,一个字计数器。

val file = "Some test data"
file.split("\\s+").size

计算字符串中每个单词出现的次数。

val file = "Some test data test"
println(file.split("\\s+").toList.groupBy(w => w).mapValues(_.length))

答案 1 :(得分:0)

我发现代码很完美!只是因为我在Spark上运行它,答案保存在懒惰的RDD文件中,我需要以某种方式收集它。因此,我将其保存为文本文件,问题解决了!这是代码:

file.flatMap(line => line.split(“”))。map(w =>(w,1))。reduceByKey( + )。saveAsTextFile(“OUT。 TXT“)

感谢。