Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala apachespark:RDD[Char],但作为flatmap的结果,应该是RDD[String]_Scala_Apache Spark - Fatal编程技术网

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)