sparksql简单使用案例
时间: 2023-11-08 16:05:06 浏览: 80
spark简单的使用案例
sparksql是Spark生态系统中的一个关系型数据处理引擎,支持使用SQL语言进行数据查询和分析。下面是一个简单的使用案例:
假设我们有一个包含用户ID、用户名和年龄的用户信息表user_info,和一个包含用户ID、商品ID和购买数量的订单表order_info。现在我们需要统计每个用户购买商品数量排名前三的商品以及购买数量。
首先,我们需要将两张表注册为Spark的视图:
```scala
val userDF = spark.read.format("csv").option("header", "true").load("user_info.csv")
val orderDF = spark.read.format("csv").option("header", "true").load("order_info.csv")
userDF.createOrReplaceTempView("user")
orderDF.createOrReplaceTempView("order")
```
然后,我们可以使用SparkSQL进行查询和分析:
```scala
val resultDF = spark.sql(
"""
|SELECT u.user_id, u.username, o.product_id, o.total_num
|FROM
| (SELECT user_id, username FROM user) AS u
| JOIN
| (SELECT user_id, product_id, SUM(num) AS total_num FROM order GROUP BY user_id, product_id) AS o
| ON u.user_id = o.user_id
|ORDER BY u.user_id, o.total_num DESC
|""".stripMargin)
resultDF.createOrReplaceTempView("result")
resultDF.show()
```
该查询语句将订单表按照用户ID和商品ID进行分组,统计每个用户购买每种商品的总数量,然后将用户信息表和订单统计表进行连接,将结果按照用户ID和购买数量进行降序排列。最后将结果保存为一个视图并打印出来。
阅读全文