Spark系列之分布式数据集-DataFrame

 目录:

  1、DF的创建

  2、临时表

  3、SQL查询

  4、RDD到DF的转换

  5、DF的API

简介

  DataFrame是一种不可变的分布式数据集,数据被组织成指定的列。和数据库中的表类似。

  以下的spark变量均由SparkSession创建。

1、DataFrame的创建

  jsonDf = spark.read.json(jsonStriing)

  jsonDf = spark.createDataFrame(jsonStringRdd,schema)  schema是第四部分的模式

2、通过DF创建临时表

  jsonDf.createOrReplaceTempView("jsonTable")aaaa

3、SQL查询

  spark.sql("select * from jsonTable").collect()

  spark.sql()执行完成后生成的是DF,可以进一步注册临时表。

  使用Spark SQL 分析查询最常见的存储格式是Parquet文件格式。

4、RDD到DF的转换,有两种方式:

    1) 反射推断模式

    2)编程方式指定

  4.1 反射推断模式是框架自行推断的根据数据类型

  4.2 编程方式指定是使用StructType和StructFiled定义指定。

    如:schema = StructType([

        StructField("id",LongType(),True),

        StructField("name",StringType(),True) ])

    其中StructField中的三个参数,分别代表:

      第一个参数,字段的名字

      第二个参数,字段的类型

      第三个参数,此字段是否为空

5、DF的常用函数

  1) count,统计DF中的行数

  2)select ,筛选字段,df.select("id","name")  或 df.select(df.id, df.name)

  3)filter,过滤字句 df.select("id","name").filter("name=11")   或 df.select("name","age").filter("name like 'b%'").show()

  

原文地址:https://www.cnblogs.com/wind-man/p/13406830.html