createDataFrame

RDD本身是没有数据结构的需要函数进行分析(map ,flatmap......)
SparkSQL建立在SHARK上
SparkSQL的优势:数据兼容,性能优化,组件扩展
SparkSQL的语句顺序:
1解析(Parse)分析SQL语句的关键词(如:select,from,where)并判断SQL语句的合法性
2绑定(Bind)
3最优计划(Optimize)
4计划执行(Execute)
实现SPARKSQL
生产SchemaRDD-实现SPARKSQL必须将一般的RDD转换成带数据结构的数据集DataFrame
SchemaRDD本身是一个RDD,是RDD的一个子集


用各种方法生成SchemaRDD:

用createDataFrame产生DataFrame:

一个Row是一行数据,一个元组/列表也是一行数据

用collect()输出结果是一个列表,用show()是一个表格

createDataFrame_第1张图片

createDataFrame_第2张图片

输出结果是:

createDataFrame_第3张图片

我们可以用select 只查询姓名和年龄

createDataFrame_第4张图片

registerTempTable 生成一个临时表可以去做查询:

createDataFrame_第5张图片


输出结果:

createDataFrame_第6张图片

StructType:

·        StructType表示Row的数据类型,StructField是StructType的一个字段,设置具体的字段属性,有四个参数:

·        name - 字符串,字段的名称。

·        dataType - 字段的数据类型

·        nullable - 布尔值,该字段是否可以为空(无)或不可以。

·        metadata - 从字符串到字典的字典,可以自动将内部转换为JSON

例子:


createDataFrame_第7张图片

createDataFrame_第8张图片

你可能感兴趣的:(createDataFrame)