谷歌 dataframe趋势图
dataframe不是spark sql提出的
rdd api 提供通用语言api 函数式编程
R/pandas 单机处理
以列的形式构成的分布式数据集(RDD with schema)
dataframe是分布式的关系型数据库一张表
拿到dataframe就相当于拿到一张表
但是做了更多的优化,通过结构化的数据创建,比如文本文件或hive的一张表,其他数据源等,以及RDD
dataframe api可以通过四种语言开发
提供select select
where filter
由R语言和pandas概念借鉴而来,从单机小数据演变而来
spark dataframe PB级
传统dataframe GB级
dataframe与RDD对比
RDD分布式并行处理集合
dataframe更像表,知道schema等信息,支持复杂数据结构
提供的API更高,对R,pandas原有人员友好
举例:提供属性的好处,清楚知道有哪些列,查询优化器能做到很好优化,只取一列字段;
总结:
RDD
java/scala===>jvm
python ===>python runtime
dataframe
java/scala/python ===>logic plan 性能一致
dataframe:
create dataframe
printSchema
show
select
filter
RDD与dataframe互操作:
1.反射 支持两种不同的方式 将rdd转换为dataframe
dataset:
是一个分布式的数据集,新的接口,spark1.6才出现dataset
优点:强类型,支持lambda表达式,支持优化,dataset优于dataframe