products一個(gè)商品價(jià)格變化的表,orders商品訂單,記錄每次購買商品和日期
基于Spark SQL中的不等值join實(shí)現(xiàn)orders和products的匹配,統(tǒng)計(jì)每個(gè)訂單中商品對(duì)應(yīng)當(dāng)時(shí)的價(jià)格
緩慢變化的商品價(jià)格表
旺仔牛奶,發(fā)生過一次價(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|旺仔牛奶|
+----------+-------+
通過不等值連接,計(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 |
+-----------+------------+----------+------------+-------------+-----+
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章名稱:【SQL】sparksql不等值join-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article36/dhccpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、云服務(wù)器、企業(yè)建站、建站公司、App開發(fā)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容