【spark系列4】spark 3.0.1集成delta 0.7.0原理解析--delta自定义sql
前提 本文基于 spark 3.0.1 delta 0.7.0 我们都知道delta.io是一个给数据湖提供可靠性的开源存储层的软件,关于他的用处,可以参考 Delta Lake,让你从复杂的Lambda架构中解放出来 ,于此类似的产品有hudi,Iceberg,因为delta无缝集成spark,所以我们来分析一下delta集成spark的内部原理以及框架,对于spark 3.x 与delta的集成是分两部分的,一部分是delta自定义的sql语法,另一部分是基于Catalog plugin API的DDL DML sql操作(spark 3.x以前是不支持的) 我们今天先分析第一部分 delta自定义的sql语法 自定义的DeltaDataSource 我们在用delta的时候,得指定delta特定的格式,如下: val data = spark.range(5, 10) data.write.format("delta").mode("overwrite").save("/tmp/delta-table") df.show() 那这个delta datasource是怎么集成到spark呢?我们来分析一下: 直接到 DataStreamWriter ,如下: val cls = DataSource.lookupDataSource(source, df