• spark学习进度18——SparkSQL


    Spark SQL是Spark用于结构化数据处理的Spark模块

    作用:

    SparkSQL是Spark用来处理结构化数据 [json,csv,Excel, MySQL] 的一个模块,它提供了一个编程抽象叫做DataFrame / DataSet。

    如果想使用SparkSQL处理文本数据或者非结构化数据怎么办? 需要将文本数据转换成结构化数据。 RDD----->DataFrame 

    特点:

    1-容易整合: 

         可以使用java、scala、python、R等语言的API操作。

    2-统一的数据访问方式:

         连接到任何数据源的方式相同。

    3-兼容hive  

         支持hiveSQL的语法。兼容hive(元数据库、SQL语法、UDF、序列化、反序列化机制)

    4-标准的数据连接: 

        可以使用行业标准的JDBC或ODBC连接。

    RDD与DataFrame区别:

    Dataframe就是带有schema的RDD.

    1-数据结构:

       

    2-编程API

     RDD的操作基于spark中的算子,而Dataframe中提供了专门操作表的API:例如:select from where.... 这样的好处是处理数据的逻辑更简单,不需要向操作RDD的时候考虑需要什么样的算子,只要写出sqL语句,那么 Spark-SQL底层会根据我们的业务使用性能最优的算子。 

    Dataframe和DataSet的区别:

    RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema。同时,与Hive类似,DataFrame也支持嵌套数据类型(struct、array和map)。从API易用性的角度上看,DataFrame API提供的是一套高层的关系操作,比函数式的RDD API要更加友好,门槛更低。由于与R和Pandas的DataFrame类似,Spark DataFrame很好地继承了传统单机数据分析的开发体验。

    1.Dataframe API的一个扩展,是Spark最新的数据抽象。

    2.用户友好的API风格,既具有类型安全检查也具有Dataframe的查询优化特性。

    3.Dataset支持编解码器,当需要访问非堆上的数据时可以避免反序列化整个对象,提高了效率。

    4.样例类被用来在Dataset中定义数据的结构信息,样例类中每个属性的名称直接映射到DataSet中的字段名称。

    5.Dataframe是Dataset的特列,DataFrame=Dataset[Row] ,所以可以通过as方法将Dataframe转换为Dataset。Row是一个类型,跟Car、Person这些的类型一样,所有的表结构信息都用Row来表示。

    6.DataSet是强类型的。比如可以有Dataset[Car],Dataset[Person].

  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/znjy/p/15819629.html
Copyright © 2020-2023  润新知