首页 > 数据库技术 > 详细

06 Spark SQL 及其DataFrame的基本操作

时间:2021-05-10 23:06:42      阅读:31      评论:0      收藏:0      [点我收藏+]

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

由于MapReduce这种计算模型执行效率比较慢,所以Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快,同时Spark SQL也支持从Hive中读取数据。

2.用spark.read 创建DataFrame

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

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

在工作方式上,Pandas不支持Hadoop,处理大量数据有瓶颈,而Spark支持Hadoop,能处理大量数据;在内存缓存上,Pandas是单机缓存的,Spark是用persist() or cache()将转换的RDDs保存在内存;在DataFrame可变性上,Pandas中DataFrame是可变的,而Spark中RDDs是不可变的,因此DataFrame也是不可变的;在index索引上,Pandas是自动创建的,而Spark没有index索引,若需要则需要额外创建该列;

Spark SQL DataFrame的基本操作

创建:

spark.read.text()

file=‘file:///usr/local/spark/examples/src/main/resources/people.txt‘
df = spark.read.text(file)

技术分享图片

spark.read.json()

file=‘file:///usr/local/spark/examples/src/main/resources/people.json‘
df = spark.read.json(file)

技术分享图片

打印数据

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

text:

技术分享图片

json:

技术分享图片

打印概要

df.printSchema()

text:

技术分享图片

json:

技术分享图片

查询总行数

df.count()

技术分享图片

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

text:

技术分享图片

json:

技术分享图片

输出全部行

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

text:

技术分享图片

json:

技术分享图片

查询概况

df.describe().show()

text:

技术分享图片

json:

技术分享图片

取列

df[‘name’]

技术分享图片

df.name

技术分享图片

df.select()

df.select(df[‘name‘]).show()

技术分享图片

df.filter()

df.filter(df.age>20).show()

技术分享图片

df.groupBy()

df.groupBy(‘age‘).count().show()

技术分享图片

df.sort()

df.sort(df[‘age‘]).show()

技术分享图片

06 Spark SQL 及其DataFrame的基本操作

原文:https://www.cnblogs.com/DongDongQiangg/p/14752602.html

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