zoukankan      html  css  js  c++  java
  • 6.Spark SQL 及其DataFrame的基本操作

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

    Hive是Shark的前身,Shark是SparkSQL的前身,Spark SQL产生的根本原因是其完全脱离了Hive的限制。

    特点:

    引入了新的RDD类型SchemaRDD,可以像传统数据库定义表一样来定义SchemaRDD。

    在应用程序中可以混合使用不同来源的数据,如可以将来自HiveQL的数据和来自SQL的数据进行Join操作。

    内嵌了查询优化框架,在把SQL解析成逻辑执行计划之后,最后变成RDD的计算。

    2.用spark.read 创建DataFrame

    使用spark.read操作可以实现从不同类型的文件中加载数据创建DataFrame,如:读取文本文件并创建DataFrame:saprk.read.text("文件名.txt")或spark.read.format.("text").load("文件名.txt"),读取JSON文件并创建DataFrame:saprk.read.json("文件名.json")或spark.read.format.("json").load("文件名.json"),读取Parquet文件并创建DataFrame:saprk.read.parquet("文件名.parquet")或spark.read.format.("parquet").load("文件名.parquet")。

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

    在已有的RDDs转换成DateFrame

    数组等结构化数据文件读取创建成DateFrame

    JSO数据集创建成DateFrame

    Hive表读取类似excel表数据创建成DateFrame

    外部数据库读取数据创建成DateFrame

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

    工作方式:pandas的是单机single machine tool,没有并行机制parallelism不支持Hadoop,处理大量数据有瓶颈

    Spark的是分布式并行计算框架,内建并行机制parallelism,所有的数据和操作自动并行分布在各个集群结点上。以处理in-memory数据的方式处理distributed数据。 支持Hadoop,能处理大量数据

    5.Spark SQL DataFrame的基本操作

    创建:

    spark.read.text()

    spark.read.json()

    打印数据

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

    打印概要

    data.printSchema()

    查询总行数

    data.count()

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

    输出全部行

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

    查询概况

    data.describe().show()

    取列

    datas[‘name’]

    datas.name

    datas.select()

    datas.filter()

    datas.groupBy()

    datas.sort()

  • 相关阅读:
    包的使用,json&pickle模块,hashlib模块
    在阿里云购买云服务器并安装宝塔面板
    python 采集斗图啦(多线程)
    python 采集斗图啦xpath
    python 采集唯美girl
    小程序接入内容内容审查接口(图片.文字)
    PEP8规范
    接口的安全问题
    学习redis知识的过程
    Spring葵花宝典
  • 原文地址:https://www.cnblogs.com/cxxcxl/p/14899113.html
Copyright © 2011-2022 走看看