【SQL】spark sql 不等值 join
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,products一个商品价格变化的表,orders商品订单,记录每次购买商品和日期基于Spark SQL中的不等值join实现orders和products的匹配,统计每个订单中商品对应当时的价格缓慢
千家信息网最后更新 2024年11月20日【SQL】spark sql 不等值 join
products一个商品价格变化的表,orders商品订单,记录每次购买商品和日期
基于Spark SQL中的不等值join实现orders和products的匹配,统计每个订单中商品对应当时的价格
缓慢变化的商品价格表
旺仔牛奶,发生过一次价格变更
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), | ("卫龙辣条", "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||卫龙辣条|2010-01-01|2020-01-01| 2|+----+----------+----------+-----+
订单表(商品名称,订单日期)
旺仔牛奶在不同价格时段分别发生了一次订单
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|旺仔牛奶|+----------+-------+
通过不等值连接,计算每个订单当时的商品价格
查看出旺仔牛奶,两个订单在不同时间段上对应的价格
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 |+-----------+------------+----------+------------+-------------+-----+
牛奶
价格
商品
订单
王老
不同
商品价格
日期
变化
缓慢
两个
价格表
名称
时段
时间
时间段
统计
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
浪潮服务器供应商
t168l打印服务器密码
大学网络安全宣传内容
网络安全工程师工作经历
安全漏洞请求包数据库查询命令
广电电信网络安全机房规范标准
博兴化工软件开发
网络安全信息研究院院长
数据库数据发散怎么解决
建网站服务器怎么选择
济南市浪潮服务器经销电话
软件开发计入研发支出
vue 打包配置服务器地址
广东定制软件开发服务商
互联网加工科技创新
上海对思网络技术有限公司
杭州安卓智能制造软件开发
数据库解决有哪些问题
网络安全一等奖绘画
高中学历怎么胜任软件开发
南京标准软件开发怎么样
win764位数据库
软件开发unittest
服务器销售工作原理
网络安全资讯老品牌
表单大师如何查询数据库
数据库服务器重启监听
e服务器地址
网络安全中的socket
知名中国网络安全工作室