pyspark系列6-Spark SQL编程实战

发布网友 发布时间:2024-12-19 23:41

我来回答

1个回答

热心网友 时间:2024-12-20 01:15

一、Spark DataFrame概述


Spark DataFrame在PySpark SQL中提供了一个数据抽象层,它在Spark中表示为分布式的行集合,类似于关系型数据库的表或带有列头的Excel表格。


DataFrame具有以下特点:



不可变性:一旦创建了RDD或DataFrame,就不能更改,只能通过Transformation生成新的。
惰性评估:只有在执行Action时才会触发Transformation的执行。
分布式:DataFrame与RDD一样,都是分布式的。

创建DataFrame的方式包括:通过pandas dataframe、列表、RDD或数据源如csv、json、parquet、orc、jdbc。


在Spark SQL中使用SparkSession作为起点,可以从现有RDD、Hive表或数据源创建DataFrame。



1.1.1 通过json文件创建DataFrame


注意:多行json文件在创建DataFrame时会报错,应调整为单行json文件。


1.1.2 通过CSV文件创建DataFrame


1.1.3 通过已存在的RDD创建DataFrame


1.1.4 通过hive table创建DataFrame


1.1.5 通过jdbc数据源创建DataFrame



二、Spark SQL实战


使用经典scoot用户下的4张表模拟Spark SQL实战。


2.1 DataFrame的统计信息


生成DataFrame时,会保留统计信息,类似于关系型数据库的统计信息。



2.2 DataFrame的select操作


通过select操作实现对DataFrame部分列的提取。



2.3 DataFrame对列的操作


对列进行别名、新增列、删除列等操作。



2.4 过滤数据


使用filter或where过滤数据。



2.5 简单的聚合操作


常用聚合操作包括平均值、计数、唯一计数、最大值、最小值、求和、唯一值合计、偏态、标准偏差等。



2.6 表连接


实现内连接和外连接,包括右连接。



2.7 排序


实现数据排序。



在Spark SQL中,通过DataFrame提供了一个高效且功能丰富的数据处理方式,简化了数据操作的复杂性,适用于大规模数据集的分析和处理任务。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com