Scala apachespark:RDD[Char],但作为flatmap的结果,应该是RDD[String]
所以我基本上是这样做的Scala apachespark:RDD[Char],但作为flatmap的结果,应该是RDD[String],scala,apache-spark,Scala,Apache Spark,所以我基本上是这样做的 // data type type FeatureTuple = ((String, String), Double) featureTuple.flatMap(_._1._2) 但是它返回的是一个RDD[Char]而不是RDD[String],为什么会发生这种情况?平面映射导致字符串被隐式转换为包装字符串,这是一个可遍历一次[Char](因为RDD的flatMap方法需要一个类型为T=>TraversableOnce[U]的参数,String可以转换为Tra
// data type
type FeatureTuple = ((String, String), Double)
featureTuple.flatMap(_._1._2)
但是它返回的是一个RDD[Char]而不是RDD[String],为什么会发生这种情况?平面映射导致
字符串
被隐式转换为包装字符串
,这是一个可遍历一次[Char]
(因为RDD
的flatMap
方法需要一个类型为T=>TraversableOnce[U]
的参数,String
可以转换为TraversableOnce[Char]
),因此最终将使用RDD[Char]
而不是RDD[String]
。如果隐式转换不存在(它是在scala.Predef
中定义的),那么您只会得到一个编译错误
无论如何,要解决这个问题,只需使用
map
而不是flatMap
使用flatMap(u._1)
和flatMap(u._2)
?