购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 SQL in Spark

Spark SQL的前身是Shark,即Hive on Spark,本质上是通过Hive的HQL进行解析,把HQL翻译成Spark上对应的RDD操作,然后通过Hive的Metadata获取数据库里的表信息,最后获取相关数据并放到Spark上进行运算。

Spark SQL支持大量不同的数据源,包括Hive、JSON、Parquet、JDBC等,允许开发人员直接用SQL来处理数据。它的一个重要特点是能够统一处理二维表和RDD,这就使得开发人员可以使用SQL进行更复杂的数据分析。

Spark SQL的特点如下:

· SchemaRDD:引入了新的RDD类型SchemaRDD,可以像传统数据库定义表一样来定义RDD。SchemaRDD由列数据类型和行对象构成。它与RDD可以互相转换。

· 多数据源支持:可以混合使用不同类型的数据,包括Hadoop、Hive、JSON、Parquet和JDBC等。

· 内存列存储:Spark SQL的表数据在内存中采用内存列存储(In-Memory Columnar Storage),这样计算的速度更快。

· 字节码生成技术:Spark 1.1.0版本后在Catalyst模块的Expressions增加了Codegen模块,使用动态字节码生成技术,对匹配的表达式采用特定的代码动态编译。另外,对SQL表达式也做了优化。因此,效率进一步提升。 +UQLgYjkz0Gh6YIrhdc0mbmRqwwKvsLe5+UQ7qaDKV4oSRdIOIvq48VF7IBXsn4W

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开