Spark DataFrame

DataFrame它不是spark sql提出来的,而是早期在R、Pandas语言就已经有了的
DataSet: A DataSet is a distributed collection of data. (分布式的数据集)
DataFrame:A DataFrame is a DataSet organized into named columns.
以列(列名,列类型,列值)的形式构成的分布式的数据集,按照列赋予不同的名称

student
id:int
name:string
city:string

概念

1)分布式的数据集,并且以列的方式组合的。相当于具有schema的RDD
2)相当于关系型数据库中的表,但是底层有优化
3)提供了一些抽象的操作,如select、filter、aggregation、plot
4)它是由于R语言或者Pandas语言处理小数据集的经验应用到处理分布式大数据集上
5)在1.3版本之前,叫SchemaRDD

DataFrame对比RDD

1)DataFrame不仅仅分布式数据集,并且有schema描述(按列存储,有对应列的描述)


1547028826738.png

2)运行环境
RDD:
java/scala ==> JVM
python ==> python runtime
DataFrame
java/scala/python ==> Logic Plan (最终性能一样)

DataFrame基本API常用操作

1)Create DataFrame
2)select
3)printSchema
4)filter
5)show

DataFrame和RDD互操作的两种方式

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


2)编程:Row 如果第一种情况不能


1547085106771.png

优先考虑第一种

你可能感兴趣的:(Spark DataFrame)