首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个RDD如何根据函数得到RDD结果

两个RDD如何根据函数得到RDD结果
EN

Stack Overflow用户
提问于 2016-01-19 07:27:20
回答 1查看 42关注 0票数 0

我是阿帕奇火花的初学者。我想用下面的代码将两个RDD过滤到结果RDD中

代码语言:javascript
运行
复制
def runSpark(stList:List[SubStTime],icList:List[IcTemp]): Unit ={
val conf = new SparkConf().setAppName("OD").setMaster("local[*]")
val sc = new SparkContext(conf)
val st = sc.parallelize(stList).map(st => ((st.productId,st.routeNo),st)).groupByKey()
val ic = sc.parallelize(icList).map(ic => ((ic.productId,ic.routeNo),ic)).groupByKey()
//TODO
//val result = st.join(ic).mapValues( )
sc.stop()
}

以下是我想做的事

代码语言:javascript
运行
复制
List[ST] ->map ->Map(Key,st) ->groupByKey ->Map(Key,List[st])
List[IC] ->map ->Map(Key,ic) ->groupByKey ->Map(Key,List[ic])
STRDD join ICRDD get Map(Key,(List[st],List[ic]))

我有一个函数比较listST和listIC获取列表结果包含SubStTime和IcTemp信息

代码语言:javascript
运行
复制
  def calcIcSt(st:List[SubStTime],ic:List[IcTemp]): List[result]

我不知道如何使用mapvalue或其他方法来获得结果

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-19 08:00:00

代码语言:javascript
运行
复制
val result = st.join(ic).mapValues( x => calcIcSt(x._1,x._2) )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34870834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档