7.Spark SQL

一. 分析SparkSQL出现的原因,并简述SparkSQL的起源与发展。

二. 简述RDD 和DataFrame的联系与区别。

三. DataFrame的创建与保存:

  1. PySpark-DataFrame创建:
    • spark.read.text(url)
    • spark.read.json(url)
    • spark.read.format("text").load("people.txt")
    • spark.read.format("json").load("people.json")
    • 描述从不同文件类型生成DataFrame的区别。
    • 用相同的txt或json文件,同时创建RDD,比较RDD与DataFrame的区别。

  1. DataFrame的保存
    • df.write.text(dir)
    • df.write.json(dri)
    • df.write.format("text").save(dir)
    • df.write.format("json").save(dir)

四. PySpark-DataFrame各种常用操作

  1. 基于df的操作:
    • 打印数据 df.show()默认打印前20条数据
    • 打印概要 df.printSchema()
    • 查询总行数 df.count()
    • df.head(3) #list类型,list中每个元素是Row类
    • 输出全部行 df.collect() #list类型,list中每个元素是Row类
    • 查询概况 df.describe().show()
    • 取列 df[‘name’], df.name, df[1]

  1. 基于spark.sql的操作
    • 创建临时表 df.registerTempTable('people')
    • spark.sql执行SQL语句 spark.sql('select name from people').show()

五 Pyspark中DataFrame与pandas中DataFrame

  • 分别从文件创建DataFrame
  • 比较两者的异同
  • pandas中DataFrame转换为Pyspark中DataFrame
  • Pyspark中DataFrame转换为pandas中DataFrame

六 从RDD转换得到DataFrame

  1. 利用反射机制推断RDD模式
    • 创建RDD sc.textFile(url).map(),读文件,分割数据项
    • 每个RDD元素转换成 Row
    • 由Row-RDD转换到DataFrame

  1. 使用编程方式定义RDD模式
    • 下面生成“表头”
    • 下面生成“表中的记录”
    • 下面把“表头”和“表中的记录”拼装在一起

posted @ 2022-05-07 11:19  叶文茂  阅读(29)  评论(0编辑  收藏  举报
TOP