DataFrame是一个分布式的Table,形式如下:
Name | Age | Tel |
String | Int | Long |
String | Int | Long |
String | Int | Long |
String | Int | Long |
String | Int | Long |
String | Int | Long |
String | Int | Long |
RDD如下所述:
Person |
Person |
Person |
Person |
Person |
Person |
Person |
2,RDD和DataFrame的根本差异:
a) RDD是以Record为单位,Spark在优化的时候无法洞悉Record内部的细节,所以也就无法进行更深度的优化,这极大地限制了Sparksql性能的提升
b) DataFrame包含了每个Record的Metadata信息,也就是说DataFrame的优化是基于列内部的优化,而不是像RDD一样只能基于行进行优化