1、SparkSession 介绍
通过SparkSession 可以创建DataFrame, 也可以把DataFrame注册成一个table,基于此执行一系列SQL操作。DataFrame和pandas里的DataFrame类似。
关于什么是DataFrame,后续会出一篇介绍spark基本概念的博客。
2、实验环境
博主是用的 jupyter notebook,新建了一个pyspark的notebook。环境如何搭建这里就不多说了。
当然了,下面的代码也可以在PyCharm里实现。
3、创建一个SparkSession
SparkSQL支持scala、java、python和R。以官网示例python为例:
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
其中:
- 在pyspark中换行要 加入
\
-
.getOrCreate()
指的是如果当前存在一个SparkSession就直接获取,否则新建。 -
.enableHiveSupport()
使我们可以从读取或写入数据到hive。
我们还可以自定义配置,例如定义spark任务执行时的内存:
from pyspark.sql import SparkSession
myspark = SparkSession.builder \
.appName('compute_customer_age') \
.config('spark.executor.memory','2g') \
.enableHiveSupport() \
.getOrCreate()
4、基于SparkSession操作
Create DataFrame:从hive读数据
sql = """
SELECT id as customer_id,name, register_date
FROM [db_name].[hive_table_name]
limit 100
"""
df = myspark.sql(sql)
df.show()
df.show()
可以预览数据,默认显示前20行,df.show(n)
可以显示前n行。df.show()
结果如图:
关于SparkSession的介绍就到这里了,博主也是边学习边总结经验,把踩到的坑记录下来。