我们前面的文章介绍了DSL风格的编程,现在介绍以下两种编程风格之一的sql风格编程。
sql风格编程简介
sql风格编程就是我们可以通过spark.sql来执行sql语句进行查询,这时的DataFrame就像是一张关系型数据表。返回的是DataFrame。
如果我们想用sql风格的编程,需要先将DataFrame注册成表,注册表的方式有以下3种:
go
# 注册临时表
df.createTempView("score")
# 注册临时表,如果存在则替换
df.createOrReplaceTempView("score")
# 注册全局表
df.createGlobalTempview("score")
值得注意的是,全局表是可以跨sparksession对象使用的,在一个程序内,多个sparksession对象都可以使用,临时表只能在当前的sparksession中使用,全局表的查询需带上前缀global_temp.xxx
将dataframe注册成表之后就可以用sql语句来查询了
python
spark.sql("SELECT subject, COUNT(*) AS cnt FROM score GROUP BY subject").show()