02-SparkSQL

常用方法

  1. spark.sql执行sql语句
sqlstr = """
select store_code
,store_name
,location
from store
where country = 'CN'
order by id
"""
spark.sql(sqlstr)

2. show & display查看数据

show

df.show()

在这里插入图片描述

display(推荐)

display(df)

在这里插入图片描述

3. 从现有表创建一个DataFrame。spark.table & spark.sql

spark.table

df = spark.table('user')

spark.sql

df = spark.sql('select * from user')

4. 查看schema

df.printSchema()

在这里插入图片描述

df.schema

在这里插入图片描述

%scala
spark.read.parquet("/mnt/training/ecommerce/events/events.parquet").schema.toDDL

在这里插入图片描述

5. 查看DataFrame字段名df.schema.names

6. 统计行数count

df.count()

7. whereselectorderBy

sql

select name,price
from product
where price < 200 
order by price

where select orderBy

df_product\
.where('price < 200')\
.select('name','price')\
.orderBy(price) # orderBy(price,ascending=False)

8. 注册临时视图createOrReplaceTempView

df.createOrReplaceTempView('product') # 这种方法创建的临时视图只能在当前notebook中调用,不能全局调用
spark.sql('select * from product where price < 200') # 调用上面注册的product 

9. 注册全局视图createOrReplaceGlobalTempView

df.createOrReplaceGlobalTempView('product') # 这种方法创建的临时视图是全局视图,不仅在当前notebook中可以使用,在其他notebook中也可以使用

调用

spark.sql('select * from product where price < 200')  

如上这种方式调用是失败的。因为全局视图是存储在global_temp这个库里面的,所以需要加上库名才能调用成功

 spark.sql('select * from global_temp.product where price < 200')  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值