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

    一.

    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

    参考http://www.lining0806.com/spark与pandas中dataframe比对

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

    参考http://www.lining0806.com/spark与pandas中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()

  • 相关阅读:
    Codeforces 758D:Ability To Convert(思维+模拟)
    Codeforces 758B:Blown Garland(模拟)
    BZOJ-1053 反素数
    BZOJ-1024 生日快乐
    BZOJ-1036 树的统计
    BZOJ-1029 建筑抢修
    BZOJ-1059 矩阵游戏
    BZOJ-1026 windy数
    BZOJ-1019 汉诺塔
    BZOJ-1031 字符加密
  • 原文地址:https://www.cnblogs.com/Margerita/p/14741693.html
Copyright © 2011-2022 走看看