目录:
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()