我正在尝试在Scala中编写字数统计程序。我使用字符串"file"
:
file.map( _.split(" ")).flatMap(word => (word, 1)).reduceByKey( _ + _ )
一直这样说:
值拆分不是Char的成员
无法弄清楚如何解决它!
答案 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“)
感谢。