首先我们上一张spark的技术栈框架图
结合上面的图,这篇文章我们主要介绍spark的spark sql技术栈。
在spark中spark sql是日常中使用非常广泛的一个技术栈。整个spark sql是构建在spark core之上的组建,主要是用来对结构化数据执行查询,分析等操作。
工作中,大多数的开发人员对于编写sql是非常熟悉的,因此spark sql提供的功能就是在spark上也能让我们像操作mysql一样,直接编写sql即可对数据进行查询和分析。spark sql具有:
1、高度的灵活性 2、简单的易用性 3、良好的性能
因此这是一个非常受欢迎的技术栈,在spark的应用程序开发的场景里面,个人认为至少占比40%以上。
备注:
1、在使用sparksql的时候,我们会涉及到一个叫做dataframe的数据结构抽象。这个dataframe可以看做什么呢,可以看做是mysql的一张张表,例如:
上图是一张mysql的表,当我们把数据转换成dataframe的时候,我们可以把数据抽象的看成是这张表,含有字段名,每一个字段名对应的列包含具体的数据,在编写sql的时候,我们还是根据字段名进行查询,例如:
select * from table where id = 1'
关于spark sql的具体使用我们会在后面的文章里面介绍到。
2、spark sql可以进行即席查询,他自带有一个名为Catalyst的优化器框架,这个框架用于解析sql语句并且自动执行sql的优化,用意提升查询效率。
还没有评论,来说两句吧...