【问题标题】:How two RDD according to funcation get Result RDD两个RDD如何根据函数得到Result RDD
【发布时间】:2016-01-19 07:27:20
【问题描述】:

我是 Apache Spark 的初学者。我想用下面的代码将两个 RDD 过滤成结果 RDD

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()
}

这就是我想做的事情

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 得​​到 List[result] 结果包含 SubStTime 和 IcTemp 信息

  def calcIcSt(st:List[SubStTime],ic:List[IcTemp]): List[result]

我不知道如何使用 mapvalues 或其他方式来获得我的结果

谢谢

【问题讨论】:

    标签: apache-spark


    【解决方案1】:
    val result = st.join(ic).mapValues( x => calcIcSt(x._1,x._2) )
    

    【讨论】:

      猜你喜欢
      • 2014-11-20
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      相关资源
      最近更新 更多