pyspark之创建SparkSession

时间:2024-04-13 16:24:34

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()结果如图:
pyspark之创建SparkSession

关于SparkSession的介绍就到这里了,博主也是边学习边总结经验,把踩到的坑记录下来。

参考资料:
1、Spark SQL, DataFrames and Datasets Guide