【发布时间】:2017-01-29 15:45:53
【问题描述】:
我是火花新手。
这是我的代码:
val Data = sc.parallelize(List(
("I", "India"),
("U", "USA"),
("W", "West")))
val DataArray = sc.broadcast(Data.collect)
val FinalData = DataArray.value
这里的FinalData 是Array[(String, String)] 类型。
但我希望数据采用RDD[(String, String)] 类型的形式。
我可以将FinalData 转换为RDD[(String, String)] 类型吗?
更多详情:
我想加入两个RDD所以优化加入条件(从性能角度来看) 我正在向所有集群广播小型 RDD,以便减少数据混洗。(间接性能会得到改善) 所以对于这一切,我正在写这样的东西:
//Big Data
val FirstRDD = sc.parallelize(List(****Data of first table****))
//Small Data
val SecondRDD = sc.parallelize(List(****Data of Second table****))
所以我肯定会广播小数据集(意味着 SecondRDD)
val DataArray = sc.broadcast(SecondRDD.collect)
val FinalData = DataArray.value
//这里会报错
val Join = FirstRDD.leftOuterJoin(FinalData)
找到数组需要的RDD
这就是我寻找 Array 到 RDD 转换的原因。
【问题讨论】:
标签: scala apache-spark