package Restart
import com.alibaba.fastjson.{JSON, JSONException}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object JoinOrderTable {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName(this.getClass.getCanonicalName).setMaster("local[*]")
val sc = new SparkContext(conf)
val lines = sc.textFile("C:\\Users\\admin\\Desktop\\FastJion.txt")
val lineOrderBean: RDD[OrderingBean] = lines.map(it => {
var ordering: OrderingBean = null
try {
ordering = JSON.parseObject(it, classOf[OrderingBean])
} catch {
case e: JSONException =>
}
ordering
})
//记住要过滤脏数据
val filterOrderBean = lineOrderBean.filter(i => i != null)
val cidAndMoney: RDD[(Int, Double )] = filterOrderBean.map(it => {
val cid = it.cid
val money = it.money
(cid,money)
})
val reduceCidAndMoney: RDD[(Int, Double)] = cidAndMoney.reduceByKey(_ + _)
val line= sc.textFile("C:\\Users\\admin\\Desktop\\commodity.txt")
val value: RDD[(Int, String)] = line.map(it => {
val strings = it.split(",")
val ocid = strings(0).toInt
val ord = strings(1)
(ocid, ord)
})
val value1: RDD[(Int, (Double, String))] = cidAndMoney.join(value)
val value2: RDD[(String, Double)] = value1.map(it => {
((it._2._2, it._2._1))
})
val value3 = value2.reduceByKey(_ + _)
println(value3.collect().toBuffer)
}
}
{"cid": 1, "money": 600.0, "longitude":116.397128,"latitude":39.916527,"oid":"o123", }
"oid":"o112", "cid": 3, "money": 200.0, "longitude":118.396128,"latitude":35.916527}
{"oid":"o124", "cid": 2, "money": 200.0, "longitude":117.397128,"latitude":38.916527}
{"oid":"o125", "cid": 3, "money": 100.0, "longitude":118.397128,"latitude":35.916527}
{"oid":"o127", "cid": 1, "money": 100.0, "longitude":116.395128,"latitude":39.916527}
{"oid":"o128", "cid": 2, "money": 200.0, "longitude":117.396128,"latitude":38.916527}
{"oid":"o129", "cid": 3, "money": 300.0, "longitude":115.398128,"latitude":35.916527}
{"oid":"o130", "cid": 2, "money": 100.0, "longitude":116.397128,"latitude":39.916527}
{"oid":"o131", "cid": 1, "money": 100.0, "longitude":117.394128,"latitude":38.916527}
{"oid":"o132", "cid": 3, "money": 200.0, "longitude":118.396128,"latitude":35.916527}
1,"家具"
2,"手机"
3,"服装"
将上面cid和money和下面的家具...二表结合一起
Spark:将二表关联
最新推荐文章于 2024-04-13 21:19:08 发布