真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【SQL】sparksql不等值join

products一個(gè)商品價(jià)格變化的表,orders商品訂單,記錄每次購(gòu)買商品和日期
基于Spark SQL中的不等值join實(shí)現(xiàn)orders和products的匹配,統(tǒng)計(jì)每個(gè)訂單中商品對(duì)應(yīng)當(dāng)時(shí)的價(jià)格

創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、小程序開(kāi)發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10余年以來(lái),已經(jīng)為上千余家成都廣告制作各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的上千余家客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。

緩慢變化的商品價(jià)格表
旺仔牛奶,發(fā)生過(guò)一次價(jià)格變更


scala> val products = sc.parallelize(Array(
     |   ("旺仔牛奶", "2017-01-01", "2018-01-01", 4),
     |   ("旺仔牛奶", "2018-01-02", "2020-01-01", 5),
     |   ("王老吉", "2017-01-02", "2019-01-01", 5),
     |   ("衛(wèi)龍辣條", "2010-01-01", "2020-01-01", 2)
     | )).toDF("name", "startDate", "endDate", "price")
products: org.apache.spark.sql.DataFrame = [name: string, startDate: string ... 2 more fields]

scala> products.show();
+----+----------+----------+-----+
|name| startDate|   endDate|price|
+----+----------+----------+-----+
|旺仔牛奶|2017-01-01|2018-01-01|    4|
|旺仔牛奶|2018-01-02|2020-01-01|    5|
|   王老吉|2017-01-02|2019-01-01|    5|
|衛(wèi)龍辣條|2010-01-01|2020-01-01|    2|
+----+----------+----------+-----+

訂單表(商品名稱,訂單日期)
旺仔牛奶在不同價(jià)格時(shí)段分別發(fā)生了一次訂單

scala> val orders = sc.parallelize(Array(
     |   ("2017-06-01", "旺仔牛奶"),
     |   ("2017-07-01", "王老吉"),
     |   ("2018-03-01", "旺仔牛奶")
     | )).toDF("date", "product")
orders: org.apache.spark.sql.DataFrame = [date: string, product: string]

scala> orders.show
+----------+-------+
|      date|product|
+----------+-------+
|2017-06-01|旺仔牛奶|
|2017-07-01|    王老吉|
|2018-03-01|旺仔牛奶|
+----------+-------+

通過(guò)不等值連接,計(jì)算每個(gè)訂單當(dāng)時(shí)的商品價(jià)格
查看出旺仔牛奶,兩個(gè)訂單在不同時(shí)間段上對(duì)應(yīng)的價(jià)格

scala> orders.join(products, $"product" === $"name" && $"date" >= $"startDate" && $"date" <= $"endDate").show()
+-----------+------------+----------+------------+-------------+-----+
|     date      |  product   |    name  |   startDate |   endDate   | price|
+-----------+------------+----------+------------+-------------+-----+
|2017-07-01|    王老吉  | 王老吉   |2017-01-02|2019-01-01 |    5  |
|2017-06-01|  旺仔牛奶 |旺仔牛奶|2017-01-01|2018-01-01 |    4  |
|2018-03-01|  旺仔牛奶 |旺仔牛奶|2018-01-02|2020-01-01 |    5  |
+-----------+------------+----------+------------+-------------+-----+

當(dāng)前標(biāo)題:【SQL】sparksql不等值join
文章位置:http://weahome.cn/article/gehshh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部