码迷,mamicode.com
首页 > 数据库 > 详细

Spark SQL 及其 DataFrame 的基本操作

时间:2021-05-24 04:48:45      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:amp   lte   info   大量   name   创建   高级   实现   商业   

Spark SQL 及其 DataFrame 的基本操作

Q & A

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

关系数据库已经流行多年,能较好的满足各类商业公司的业务数据管理需求,但关系数据库在大数据时代已经不能满足各种新增的用户需求。用户需要从不同数据源执行各种操作(包括结构化和非结构化数据),也需要执行高级分析(在实际大数据应用中,经常需要融合关系查询和复杂分析算法)。
Spark SQL 的出现,填补了这个鸿沟。首先,Spark SQL 可以对内部和外部各种数据源执行各种关系操作;其次,可以支持大量的数据源和数据分析算法,有效地满足各种复杂的应用需求。

2. 用 spark.read 创建 DataFrame

  1. 从文件创建 spark.read
  2. 从RDD创建

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

  1. 共同点:在创建 Data Frame 时,都可以使用spark.read 操作,实现从不同类型的文件中加载数据创建DataFrame。
  2. 不同点:
    • spark.read.text("people.txt"):读取文本文件 people.txt
    • spark.read.json("people.json"):读取 JSON 文件
    • spark.read.parquet("people.parquet"):读取 Parquet 文件

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

Pandas 中 DataFrame 是可变的,而 Spark 中 RDDs 是不可变的,因此 DataFrame 也是不可变的。

Spark SQL DataFrame 的基本操作

1. 创建:

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)

技术图片

2. 打印数据

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

text:
技术图片

json:
技术图片

3. 打印概要

df.printSchema()

text:
技术图片

json:
技术图片

4. 查询总行数

df.count()
技术图片

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

text:
技术图片

json:
技术图片

5. 输出全部行

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

text:
技术图片

json:
技术图片

6. 查询概况

df.describe().show()

text:
技术图片

json:
技术图片

7. 取列

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()

技术图片

Spark SQL 及其 DataFrame 的基本操作

标签:amp   lte   info   大量   name   创建   高级   实现   商业   

原文地址:https://www.cnblogs.com/86xiang/p/14753074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!