Feather包实现数据框快速读写,你值得拥有
什么是Feather?
Feature是一種文件格式,支持R語言和Python的交互式存儲(chǔ),速度更快。目前支持R語言的data.frame和Python pandas 的DataFrame。
Feather收到了Apache arrow 項(xiàng)目的支持,Apache Arrow是Apache基金會(huì)下一個(gè)全新的開源項(xiàng)目,同時(shí)也是頂級(jí)項(xiàng)目。它的目的是作為一個(gè)跨平臺(tái)的數(shù)據(jù)層來加快大數(shù)據(jù)分析項(xiàng)目的運(yùn)行速度。
Feather的特點(diǎn)
feather是一個(gè)用于存儲(chǔ)數(shù)據(jù)框的快速的,輕量級(jí)的,易于使用的二進(jìn)制文件格式。主要有以下特點(diǎn):
- 輕量簡(jiǎn)單
- 不依賴語言:支持python和R語言,同時(shí)也可以被其他語言讀取
- 高性能讀寫
代碼演示
我的電腦硬件配置:win7,64位操作系統(tǒng),8G內(nèi)存,CPU A6雙核。每個(gè)人電腦配置不同,數(shù)據(jù)讀寫的時(shí)間也就不同。讀者可自行實(shí)驗(yàn)下述代碼,一看究竟。
feather包的介紹于3月29號(hào)發(fā)布在RStudio的官方博客。由于當(dāng)時(shí)只是發(fā)布在Github上,Windows用戶安裝需要使用gcc 4.93工具編譯安裝,過程比較繁瑣。feather包今天正式在CRAN發(fā)布了第一版,現(xiàn)在我們只需在R 3.3.0下用install.packages()函數(shù)安裝即可。沒有升級(jí)到R 3.3.0版本的windows用戶可以參考文章—手把手教你在Windows環(huán)境下升級(jí)R。下面我們?cè)赗中來試試feather包到底有多快:
library(feather)x <- runif(1e7) x[sample(1e7, 1e6)] <- NA # 10%的NA值 df <- as.data.frame(replicate(10, x))# 內(nèi)存占用 format(object.size(df), 'MB') #[1] "762.9 Mb"#數(shù)據(jù)寫出 system.time(write_feather(df, 'test.feather'))# 用戶 系統(tǒng) 流逝 # 3.97 3.37 29.47 #數(shù)據(jù)導(dǎo)入 system.time(read_feather('test.feather'))# 用戶 系統(tǒng) 流逝 # 3.83 3.51 50.39 #查看下前幾行數(shù)據(jù) data <- read_feather('test.feather') head(data)class(data) [1] "tbl_df" "tbl" "data.frame"本來要演示feather包和readr包的速度對(duì)比,但是電腦配置不行,readr包數(shù)據(jù)寫出花了將近一個(gè)小時(shí)還沒什么動(dòng)靜,果斷放棄了。關(guān)于readr包的的介紹感興趣的讀者可以參考這里
小結(jié)
Feature速度快,但是還處在開發(fā)階段,官方認(rèn)為暫時(shí)不適合長期存儲(chǔ)數(shù)據(jù),而且不能保證不同版本的兼容性。但是可以用于R和Python的交互,也是相當(dāng)相當(dāng)棒了。762.9Mb數(shù)據(jù)導(dǎo)入只需50.39秒,feather包你值得擁有。
參考文章:
- Feather: A Fast On-Disk Format for Data Frames for R and Python, powered by Apache Arrow
- Feather R語言和Python交互式硬盤存儲(chǔ)格式
本文由雪晴數(shù)據(jù)網(wǎng)編輯整理。轉(zhuǎn)載請(qǐng)注明本文鏈接http://www.xueqing.tv/cms/article/210
轉(zhuǎn)載于:https://www.cnblogs.com/100thMountain/p/5517146.html
總結(jié)
以上是生活随笔為你收集整理的Feather包实现数据框快速读写,你值得拥有的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu1521 指数型母函数
- 下一篇: POJ 1172 DFS