所以我基本上就是这样做的
// data type
type FeatureTuple = ((String, String), Double)
featureTuple.flatMap(_._1._2)
但是它返回的是 RDD[Char] 而不是 RDD[String],为什么会发生这种情况?
最佳答案
flatMap
导致 String
隐式转换为 WrappedString
,它是 TraversableOnce[Char]
> (因为 RDD
的 flatMap
方法需要一个 T => TraversableOnce[U]
类型的参数和一个 String
code> 可以转换为 TraversableOnce[Char]
),因此您最终会得到 RDD[Char]
而不是 RDD[String]
。如果该隐式转换不存在(它在 scala.Predef 中定义),那么您只会收到编译错误。
无论如何,要解决此问题,只需使用 map
而不是 flatMap
。
关于scala - Apache Spark : RDD[Char] but should be RDD[String] as result of flatmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617829/