當前位置:成語大全網 - 書法字典 - Spark-sql讀取hive分區表以限制分區過濾條件並限制分區數量。

Spark-sql讀取hive分區表以限制分區過濾條件並限制分區數量。

在使用spark讀取hive分區表(或在spark和nodepad開發工具上使用hive)的過程中,壹些開發人員沒有註意添加分區屬性過濾,導致在執行過程中加載了完整的數據,造成任務執行效率低和磁盤IO大量丟失等問題。

1.自定義規則CheckPartitionTable類以實現該規則。

然後通過此方法創建SparkSession。

2.自定義規則CheckPartitionTable類以實現該規則,並將該規則類附加到optimizer . batches:Seq【Batch】。

1,CheckPartitionTable規則執行類,需要引入sparkSession來獲取導入的conf;規則【logical plan】;】需要繼承;

2.split謂詞用於分隔分區謂詞並獲得分區謂詞表達式。

sql解析過程中謂詞被解析為TreeNode,這裏遞歸得到分區謂詞。

3.判斷是否是分區表,是否添加分區字段。

4.實現規則的應用方法。

關於spark-sql的主要執行過程和準備知識,請參考我同學/p/4cc6797fb9ce的這篇博文。