寫一個Spark DataSource的隨手筆記

zybing發表於2021-09-09

真的只是個隨手筆記。記錄下一些操作過程。

背景

最近需要實現一些Spark邏輯計劃和物理計劃的最佳化,遂打算寫一點簡單的資料來源來測試。突然想到了Oracle常見的scott/tiger裡的資料。遂打算使用該資料。

獲得資料

畢竟裝Oracle是個大工程,沒有必要為了做個測試單獨安裝一個Oracle,於是用Docker,這裡推薦一下阿里的Docker Oracle映象庫:

https://dev.aliyun.com/detail.html?spm=5176.1972343.2.2.2f075aaaGOYe3m&repoId=1969

按照其方式啟動Oracle映象並sqlplus登入sysdba以後,為了確保scott/tiger沒有被鎖,還是做了一下解鎖操作:

SQL> alter user scott account unlock;

然後退出sqlplus並用scott/tiger重新登入sysdba,並且檢視scott的表:

SQL> select table_name from user_tables;TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE

沒有問題。

在此只做一些簡單的測試,所以並沒有使用jdbc方式在test類裡獲取資料,而是直接拿了一些資料hard code在test類裡。

寫Spark DataSource API

實現了簡單的謂詞下推功能。詳細Datasource程式碼見GitHub,裡面還包含了一個tpc-ds的DataSource:



作者:orisonchan
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2811960/,如需轉載,請註明出處,否則將追究法律責任。

相關文章