でRDDSをマージすることをお勧め何私は、彼らが同じ形式のものであり、その結果として、マルチRDDSを持って、それらをマージしたいしている:ここでは、Scalaの
RDD(id, HashMap[String, HashMap[String, Int]])
^ ^ ^
| | |
identity category distribution of the category
は、RDDの例である:
(1001, {age={10=3,15=5,16=8, ...}})
HashMap[String, HashMap]
の最初のキーString
は、統計のカテゴリであり、HashMap[String, HashMap]
のHashMap[String, Int]
はカテゴリの分布です。さまざまなカテゴリの各分布を計算した後、結果をデータベースに保存できるように、それらをアイデンティティでマージします。ここで私は現在、得たものである:
def mergeRDD(rdd1: RDD[(String, util.HashMap[String, Object])],
rdd2:RDD[(String, util.HashMap[String, Object])]): RDD[(String, util.HashMap[String, Object])] = {
val mergedRDD = rdd1.join(rdd2).map{
case (id, (m1, m2)) => {
m1.putAll(m2)
(id, m1)
}
}
mergedRDD
}
val mergedRDD = mergeRDD(provinceRDD, mergeRDD(mergeRDD(levelRDD, genderRDD), actionTypeRDD))
私は2つのRDDSたびにマージすることができるように、私は機能mergeRDD
を書き、しかし、私はその関数が任意の感動が高く評価され、スカラ座への初心者として、非常にエレガントではありませんがわかりました。
マージ機能のプロパティは何ですか? – eliasah
@eliasahお返事ありがとうございますが、プロパティではどういう意味ですか? – armnotstrong