支持delete吗_Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL
下面詳細地介紹這些功能
部分功能的 SQL 支持
SQL 的支持能夠為用戶提供極大的便利,如果大家去看數磚的 Delta Lake 產品,你肯定已經看到它已經支持了 SQL 語法。但是開源的 Delta Lake 在這個版本之前只支持使用 Scala\Java 去創建、刪除、更新?Delta Lake?表。
值得高興的是,從?0.4.0?版本開始,Delta Lake 已經開始支持一些命令的 SQL 語法了。由于 Delta Lake 是單獨的一個項目,如果需要讓它支持所有的 SQL 語法,需要從 Apache Spark 里面拷貝大量的代碼到 Delta Lake 項目中,不便于維護,所以這個版本只支持 vacuum 和 history 簡單命令的 SQL 語法。
其他的 delete、update?以及?merge?的 DML 操作支持可能得等到 Spark 3.0 版本才會支持的。目前社區也在 Spark 3.0 里面的 DataSource V2 API 里面添加了對?DELETE/UPDATE/MERGE?的支持,詳情參見?https://issues.apache.org/jira/browse/SPARK-28303。相信在未來版本,這些基本的 SQL 語法支持也會逐漸支持。
用于 DML 和實用操作的 Python API
在 0.4.0 版本之前,Delta Lake 只支持 Scala 和 Java API。為了能夠在 Python 中使用 Delta Lake,這個版本引入了 Python API(具體可以參見 https://github.com/delta-io/delta/issues/89),可以用它在 Delta Lake 表來進行 update\delete\merge 等操作。
我們還可以使用這個 Python API 運行一些實用操作,比如?vacuum、history 等。這樣 Python 和 Scala\Java 的 API 功能就對齊了。更多關于 Python API 的使用可以參見 Delta Lake 的官方文檔。
將?Parquet 表轉換成 Delta Lake 表
如果我們有一張 parquet 的普通表,然后我們想把它轉換成? Delta Lake 表,在這之前我們需要先讀出這張表,然后再寫成 Delta Lake 表。如果我們的 parquet 表非常大,這需要很多的資源去轉換。這個版本為我們提供了轉換命令,直接可以在原地將?Parquet 表轉換成 Delta Lake 表,注意這里說的是原地,意味著不需要將數據從一個地方挪到另外一個地方,也不需要將所有數據讀出再寫到原目錄。這個命令會列出Parquet 表的所有文件,然后通過自動讀取所有 Parquet?文件的footer?位置獲取表的模式,最后生成一個?transaction log 來追蹤這些文件。當然,如果你不需要 Delta Lake 表,你也可以使用這個命令將它再轉回成普通的Parquet 表。新福利:
從9月11日開始至10月15日截止,一共五周時間,每周二我會從公眾號底部留言+轉發+在看綜合最多的讀者中抽取一名讀者,免費包郵送實體新書《HBase原理與實踐》,留言互動起來吧~
上周獲獎名單:ZRTX
猜你喜歡1、云棲大會 | Apache Spark 3.0 和 Koalas 最新進展
2、32 道常見的 Kafka 面試題你都會嗎?附答案
3、原創干貨 | 史上最全的大數據學習資源(Awesome Big Data)
4、Apache Spark Delta Lake 寫數據使用及實現原理代碼解析
過往記憶大數據微信群,請添加微信:fangzhen0219,備注【進群】
總結
以上是生活随笔為你收集整理的支持delete吗_Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python能够接收由键盘输入的函数是_
- 下一篇: 已经无法合并还报请合并git_Git不能