扩展Spark Catalyst,打造自定义的Spark SQL引擎
Apache Spark是大数据处理领域最常用的计算引擎之一,被应用在各种各样的场景中,除了易用的API,稳定高效的处理引擎,可扩展性也是Spark能够得到广泛应用的一个重要原因。Spark中最常见的扩展就是基于DataSource API添加对新数据源的支持,除了Spark内置的HDFS,S3,Kafka等数据源,Parquet,Orc,Avro等数据类型,还有很多第三方的DataSource Plugin使得Spark成为大数据领域可以处理数据源类型最丰富的计算引擎。当然,除了DataSource,Spark还有支持很多其他的扩展点,今天我们要介绍的是Spark SQL Catalyst的扩展点,以及如何通过这些扩展点实现一些有意思的功能,打造自定义的Spark SQL引擎。
在Spark2.2版本中,引入了新的扩展点,使得用户