Spark DataFrame&DataSet

1、DataFrame产生背景

       Google trend —>DataFrame

       DataFrame不是spark SQL提出的,而是早起源于R、python

       Spark RDD API  vs MapReduce API       Threshold

       R/Pandas                                              One machine

2、DataFrame概述

      Dataset:分布式数据集  DataFrame:以列(列名、列的类型、列值)的形式构成的分布式数据集,按照列赋予不同的名称

      Student

      id:int

      name:string

      city:string

      selecting .filtering ,aggregation and plotting structured data

3、DataFrame对比RDD

      RDD分布式数据集

     RDD:

             java/scala ==> ivm

             python ==>python runtime

     DataFrame:

             java/scala/python ==> Logic Plan

4、DataFrame基本API常用操作

5、DataFrame与RDD互操作之一

     反射

     使用反射来推断包含特定数据类型的RDD的元数据

      使用DataFrame API 或者sql方式编程

5、DataFrame与RDD互操作之二:编程方式

DataFrame和RDD互操作的两种方式:

1)反射:case  class     前提:事先需要知道你的字段、字段类型

2)编程:Row               如果第一种情况不能满足你的要求(事先不知道列)

3)选型:优先选择第一种

6、Dataset概述

分布式数据集,1.3 DataFrame出现  1.6 Dataset出现

DataFrame = Dataset[Row]

Dataset:强类型   typed  case  class

DataFrame:弱类型  Row

SQL:

    select name from person; compile ok,result no

DataFrame:

    df.select(“name’)     compile no

    df.select(“nname’)   compile ok

Dataset

    ds.map(line => line.itemid)   compile no

注意:代表中标红是由于没有放到带有相应包的文件中

猜你喜欢

转载自blog.csdn.net/weixin_41362649/article/details/84664887