DataFrame关联密切的是Spark SQL技术,作为Spark中的4大模块之一,在DataFrame的基础上,将其注册为表,然后使用SQL语句进行读取处理。 主要的处理步骤如下:
操作的对应的视频如下,在腾讯课堂可免费查看所有的视频与下载简介资料
个人大数据平台的搭建与学习实践-PySpark-学习视频教程-腾讯课堂 (qq.com)
1-创建DataFrame,对于Spark2使用SparkSession;对于Spark 1使用SQLContext ?
# 1 在Spark2中使用SparkSession对象
from Pysparkimport SparkContext
from Pyspark.sql import SparkSession
sc=SparkContext(appName="test_sc")
spark=SparkSession.builder.appName('xxx_session').getOrCreate()
# 2在Spark1中使用SQLContext对象
from Pyspark.sql import SQLContext
sql_sc = SQLContext(sc)
# 3使用read进行读取各种数据源的创建DataFrame,Spark 1和Spark 2操作方法一样
df = spark.read.csv(....)
df = spark.read.json(....)
df = spark.read.jdbc(....)
df = spark.read.textFile(....)
# 或直接使用CreateDataFrame函数构建
df=spark.createDataFrame(…)
2-获取数据
可以是通过Python Pandas读取数据,或是通过SparkSession中的read属性,它是pyspark.sql.readwriter 模块中的DataFrameReader类型,在文档中可以搜索DataFrameReader,可以发现针对不同的数据源的读取函数。pyspark.sql.readwriter
3-在DataFrame的基础上构建表或视图,有很多的函数创建具有不同生命周期的视图或表
- createGlobalTempView(name) 使用此DataFrame创建全局临时视图,其生命周期和Spark应用程序
- createOrReplaceGlobalTempView(name) 使用给定的名称创建或替换全局临时视图。
- createTempView(name) 用DataFrame创建一个本地临时视图
- createOrReplaceTempView(name) 用DataFrame创建或替换一个本地临时视图
- registerTempTable(name) 使用此给定名称注册此DataFrame作为临时表
删除Spark SQL表或试图
- spark.catalog.dropGlobalTempView(name)
- spark.catalog.dropTempView (name)
|