首页 > 数据库技术 > 详细

06 Spark SQL 及其DataFrame的基本操作

时间:2021-05-08 00:14:18      阅读:22      评论:0      收藏:0      [点我收藏+]

一.

1.Spark SQL出现的 原因是什么?

spark sql是从shark发展而来。Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业(辅以内存列式存储等各种和Hive关系不大的优化);

同时还依赖Hive Metastore和Hive SerDe(用于兼容现有的各种Hive存储格式)。
Spark SQL在Hive兼容层面仅依赖HQL parser、Hive Metastore和Hive SerDe。也就是说,从HQL被解析成抽象语法树(AST)起,就全部由Spark SQL接管了。执行计划生成和优化都由Catalyst负责。借助Scala的模式匹配等函数式语言特性,利用Catalyst开发执行计划优化策略比Hive要简洁得多。

2.用spark.read 创建DataFrame

创建DataFrame

from pyspark.sql import SparkSession
# 新建一个session
spark = SparkSession.builder.appName(‘Basics‘).getOrCreate()
# 导入数据
df = spark.read.json(‘people.json‘)

df.show() # show the data source
df.printSchema() # print the schema of df
df.columns # to get the column names
df.describte().show() # get a statistical summary of df


创建DataFrame(指定Schema)

#********************************************************************#
# 指定frame结构,然后读取,在实际中更有用!
from pyspark.sql.types import StructField, StringType, IntegerType, StructType

# create the data schema
data_schema = [StructField(‘age‘, IntegerType(), True),
               StructField(‘name‘,StringType(), True)]
# pass the data schema into the Strucutre type
final_struc = StructType(fileds = data_schema)
# create the dataframe with sepecfied data schema
df = spark.read.json(‘people.json‘,schema=final_struc)

3.观察从不同类型文件创建DataFrame有什么异同?

技术分享图片

 

 

 

4.观察Spark的DataFrame与Python pandas的DataFrame有什么异同?

同上,详细可参考http://www.lining0806.com/spark与pandas中dataframe比对

 

二.Spark SQL DataFrame的基本操作

创建:

spark.read.text()

打印数据

df.show()默认打印前20条数据

打印概要

df.printSchema()

技术分享图片

 

 

spark.read.json()

打印数据

df.show(n)

打印概要

df.printSchema()

技术分享图片

查询总行数

df.count()

技术分享图片

df.head(3) #list类型,list中每个元素是Row类

技术分享图片

输出全部行

df.collect() #list类型,list中每个元素是Row类

技术分享图片

查询概况

df.describe().show()

技术分享图片

取列

df[‘name’]

df.name

技术分享图片

df.select()

技术分享图片

df.filter()

技术分享图片

df.groupBy()

技术分享图片

df.sort()

技术分享图片

好文要顶 关注我 收藏该文 技术分享图片

06 Spark SQL 及其DataFrame的基本操作

原文:https://www.cnblogs.com/QingLian/p/14742012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!