RDD的操做是以Partition为单位,输入的是Partition,输出的是itertor机器学习
它的计算是不透明,它是什么类型,从用户应用程序的角度来说,类型是不透明的学习
由此咱们没法作更多的细致优化,若是咱们能清楚地知道类型,就能作更多的限制,也就有了更多优化的空间优化
如下是一些图的对比:翻译
从结构化的角度来看,SQL只能在runtime才能发现语法错误和类型错误,it
DataFrane能在编译时发现语法错误,可是只能在运行时发现类型错误io
而DataSet能在编译时就发现语法错误和类型错误,DataSet提供了最大的限制,也提供了最大的优化编译
不管怎么翻译,最后都是翻译成RDDclass
在2.0,Spark Streaming,Spark SQL,机器学习等等都是共用一套引擎,这是很是强大的file
这里的scan new files其实指的是unbounded Table,语法
渐渐统一了批处理,流处理,机器学习等等
不过官方说了,Spark 2.0不适合在生产环境下运用
概括总结:1.RDD的弱点
2.优化后的对比
3.SQL DataFrame DataSet 之间的错误检查的对比
4.理解引擎图
5.Structed Streaming的再次理解
6.Spark 2.0 适用于生产环境吗