常用方法
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. where
、select
、orderBy
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')