scala – 错误:类型不匹配flatMap
发布时间:2020-12-16 18:19:04 所属栏目:安全 来源:网络整理
导读:我是新手来编程和 scala,我无法理解map和flatMap之间的区别. 我尝试下面的代码,因为我期望两者都工作,但有错误. scala val b = List("1","2","4","5")b: List[String] = List(1,2,4,5)scala b.map(x = (x,1))res2: List[(String,Int)] = List((1,1),(2,(4,(5
我是新手来编程和
scala,我无法理解map和flatMap之间的区别.
我尝试下面的代码,因为我期望两者都工作,但有错误. scala> val b = List("1","2","4","5") b: List[String] = List(1,2,4,5) scala> b.map(x => (x,1)) res2: List[(String,Int)] = List((1,1),(2,(4,(5,1)) scala> b.flatMap(x => (x,1)) <console>:28: error: type mismatch; found : (String,Int) required: scala.collection.GenTraversableOnce[?] b.flatMap(x => (x,1)) 根据我的理解,flatmap将Rdd输入到String / Int Rdd的集合中. 谢谢 解决方法
您需要查看签名如何定义这些方法:
def map[U: ClassTag](f: T => U): RDD[U] map从类型T到类型U采用函数并返回RDD [U]. 另一方面,flatMap: def flatMap[U: ClassTag](f: T => TraversableOnce[U]): RDD[U] 期望将类型T带到TraversableOnce [U]的函数,这是Tuple2未实现的特性,并返回RDD [U].通常,当您想要展平集合集合时使用flatMap,即如果您有RDD [List [List [Int]]并且您想要生成RDD [List [Int]],则可以使用identity对其进行flatMap. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |