1.自定義規則CheckPartitionTable類來實現規則。
然後用這個方法創建SparkSession。
2.自定義規則CheckPartitionTable類來實現規則,並將規則類追加到Optimizer.batches: Seq[Batch]。
1,CheckPartitionTable規則執行類,需要引入sparkSession來獲取導入的conf;規則[邏輯計劃];]需要繼承;
2.split謂詞用於分隔分區謂詞並獲得分區謂詞表達式。
sql解析過程中謂詞被解析為TreeNode,這裏遞歸得到分區謂詞。
3.判斷是否是分區表,是否添加分區字段。
4.實現規則的應用方法。
關於spark-sql的主要執行過程和預備知識,可以參考我同學/p/4cc6797fb9ce的這篇博文。