【发布时间】:2022-01-04 10:27:33
【问题描述】:
我是 Spark 编程的新手。我正在尝试从 RDD 中提取值,因为我从 RDD 获得了以下输出
(CBI10006,(Some(Himanshu Vasani),None))
(CBI10004,(Some(Sonam Petro),Some(8500)))
(CBI10003,(None,Some(3000)))
我想把上面的值提取到下面一个
(CBI10006,Himanshu Vasani,'')
(CBI10004,Sonam Petro,8500)
(CBI10003,'',3000)
我已经尝试了下面的 FlatMap 方法
joined.flatMap{case(f1,f2) => (f1,(f2._1,f2._2))} but getting a below error
type mismatch;
found : (String, (Option[String], Option[String]))
required: TraversableOnce[?]
**joined.flatMap{case(f1,f2) => (f1,(f2._1,f2._2))}**
【问题讨论】:
-
在你的情况下,地图可以工作,除非你想要一个 RDD[List[String]] 作为结果
-
我很确定你可以直接打电话给
values。 -
@LuisMiguelMejíaSuárez 使用 flatMap?
-
@DhrumilShah 不,我的意思是你可以在
joined上拨打values来获得你想要的答案。
标签: scala apache-spark rdd flatmap