什么是网站的权重,网站后台关键词设置,哪个网站做音基的题不花钱,临海网站建设公司3.1 DataFrame是什么
在Spark中#xff0c;DataFrame是一种以RDD为基础的分布式数据集#xff0c;类似于传统数据库中的二维表格。DataFrame与RDD的主要区别在于#xff0c;前者带有schema元信息#xff0c;即DataFrame所表示的二维表数据集的每一列都带有名称和类型。 使…3.1 DataFrame是什么
在Spark中DataFrame是一种以RDD为基础的分布式数据集类似于传统数据库中的二维表格。DataFrame与RDD的主要区别在于前者带有schema元信息即DataFrame所表示的二维表数据集的每一列都带有名称和类型。 使得Spark SQL得以洞察更多的结构信息从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行针对性的优化最终达到大幅提升运行时效率。反观RDD由于无从得知所存数据元素的具体内部结构Spark Core只能在stage层面进行简单、通用的流水线优化。 上图中左侧的RDD[Person]虽然以Person为类型参数但Spark框架本身不了解Person类的内部结构。而右侧的DataFrame却提供了详细的结构信息使得Spark SQL可以清楚地知道该数据集中包含哪些列每列的名称和类型各是什么。了解了这些信息之后Spark SQL的查询优化器就可以进行针对性的优化。后者由于在编译期有详尽的类型信息编译期就可以编译出更加有针对性、更加优化的可执行代码。
官方定义
DatasetA DataSet is a distributed collection of data. (分布式的数据集)DataFrame A DataFrame is a DataSet organized into named columns.以列列名列类型列值的形式构成的分布式的数据集按照列赋予不同的名称 DataFrame有如下特性 1、分布式的数据集并且以列的方式组合的相当于具有schema的RDD 2、相当于关系型数据库中的表但是底层有优化 3、提供了一些抽象的操作如select、filter、aggregation、plot 4、它是由于R语言或者Pandas语言处理小数据集的经验应用到处理分布式大数据集上 5、在1.3版本之前叫SchemaRDD 范例演示加载json格式数据 第一步、上传官方测试数据$SPARK_HOME/examples/src/main/resources至HDFS目录/datas 查看HDFS上数据文件其中雇员信息数据【employees.json】 第二步、启动spark-shell命令行采用本地模式localmode运行 第三步、读取雇员信息数据
3.2 Schema 信息
查看DataFrame中Schema是什么执行如下命令 可以看出Schema信息封装在StructType中包含很多StructField对象查看源码。 其一、StructType 定义是一个样例类属性为StructField的数组 其二、StructField 定义同样是一个样例类有四个属性其中字段名称和类型为必填
自定义Schema结构官方提供实例代码