1.0介紹考拉
2020年6月24日 在公司博客上
考拉是首先介紹了去年為數據科學家使用熊貓提供一種現有規模大數據負載通過運行在Apache火花TM沒有明顯的修改他們的代碼。今天在火花+人工智能峰會2020,我們宣布了考拉1.0的發布。現在實現了最常用的熊貓api, 80%的覆蓋率的熊貓api。此外,考拉支持Apache 3.0火花,Python 3.8,引發訪問器,新型的暗示,和更好的就地操作。這篇博客涵蓋了引人注目的新功能的1.0版本,持續的發展和現狀。
如果您是考拉,想了解更多關於如何使用它,請閱讀發布博客文章,考拉:簡單從熊貓過渡到Apache的火花。
快速增長和發展
開源考拉項目已經演變。在發射,熊貓API覆蓋率考拉大約是10% - -20%。從社區在許多沉重的發展,頻繁的發布,熊貓API覆蓋增加很快,現在在考拉1.0中接近80%。
此外,考拉用戶的數量迅速增加初始宣布以來,大致包括PySpark下載的五分之一,表明20%的PySpark用戶使用考拉。
更好的熊貓API報道
考拉實現幾乎所有廣泛使用的api和功能在熊貓,如策劃、分組、窗口、I / O和轉換。
此外,考拉api等transform_batch和apply_batch
可以直接利用熊貓api,使幾乎所有的大熊貓工作負載被轉換成考拉考拉1.0.0工作負載以最小的變化。
Apache 3.0火花,Python 3.8和1.0熊貓
考拉1.0.0支持Apache 3.0火花。考拉用戶能夠切換火花版本的變化幾乎為零。Apache火花了超過3400個補丁3.0火花在許多組件,考拉的修複。請看到這個博客,介紹Apache火花3.0。
與Apache 3.0火花,考拉支持最新的Python 3.8版本,有許多重大改進,你可以看到的Python 3.8.0發布說明。考拉暴露許多api類似於熊貓為了執行針對DataFrame本機Python代碼,這將受益於Python 3.8的支持。此外,考拉積極利用Python類型暗示下沉重的Python中的發展。一些類型提示功能在考拉將可能隻被允許更新的Python版本。
考拉1.0.0的目標之一是跟蹤最新的熊貓釋放和覆蓋大部分的熊貓1.0 api。API報道已經測量和改進除了跟上API更改並棄用。考拉也支持最新的熊貓考拉依賴版本,因此用戶最新的熊貓版可以很容易地跳進考拉。
火花訪問器
火花訪問器引入的考拉1.0.0為了考拉用戶利用現有PySpark api更容易。例如,您可以應用PySpark函數如下:
進口databricks.koalas作為ks進口pyspark.sql.functions作為Fkss = ks.Series ([1,2,3,4])kss.spark.apply (λs: F.collect_list (s))
你甚至可以把一係列考拉PySpark列並使用它Series.spark.transform
。
從磚進口考拉作為ksdf = ks.DataFrame ({“一個”:【1,2,3),“b”:【4,5,6]})df.a.spark.transform (λc: c + df.b.spark.column)
PySpark特性,比如緩存DataFrame火花下也可以訪問:
從磚進口考拉作為ksdf = ks.DataFrame (((。2,。3),(。0,。6),(。6,。0),(。2,。1)))df = df.transform (λx: x +1)#變換考拉DataFrame與df.spark.cache ()作為cached_df:#把考拉DataFrame緩存,#,甚至隻需要變換一次#當你觸發多次執行。打印(cached_df.count ())打印(cached_df.to_pandas ())
更快的性能
許多考拉api依賴熊貓udf。在引入新的熊貓udf Apache 3.0火花,考拉在內部使用加速性能,如在DataFrame.apply(函數)
和DataFrame.apply_batch(函數)
。
與火花3.0.0考拉1.0.0,我們看到20% - -25%更快的性能。
更好的類型提示支持
考拉的大多數api執行Python實際上本機函數和輸出熊貓實例。以前,有必要使用考拉實例返回類型提示,這顯得有點尷尬。
defpandas_div(pdf)- > ks.DataFrame [浮動,浮動]:# pdf實際上是一個
考拉1.0.0 Python 3.7和以後,您還可以使用熊貓實例返回類型:
defpandas_div(pdf)- > pd.DataFrame [浮動,浮動]:返回pdf [[“B”,“C”]]/ pdf [[“B”,“C”]]
此外,一個新的類型提示實驗介紹為了允許用戶指定列名類型提示:
defpandas_div(pdf)- > pd.DataFrame [B:浮動,“C”:浮動]:返回pdf [[“B”,“C”]]/ pdf [[“B”,“C”]]
用戶還可以通過實驗使用熊貓dtype實例和列索引的返回類型提示:
defpandas_div(pdf)- > pd.DataFrame [new_pdf.dtypes]:返回pdf [[“B”,“C”]]/ pdf [[“B”,“C”]]
defpandas_div(pdf)- > pd.DataFrame [郵政編碼(new_pdf。列,new_pdf.dtypes):返回pdf [[“B”,“C”]]/ pdf [[“B”,“C”]]
更廣泛的策劃支持
考拉的API覆蓋在考拉1.0.0的策劃能力已經達到了90%。可視化現在可以輕鬆地做考拉,以同樣的方式在熊貓。例如,相同的API調用中使用熊貓畫區域對考拉DataFrame圖表也可以使用。
kdf=ks.DataFrame ({“銷售”:【3,2,3,9,10,6,3),“注冊”:【5,5,6,12,14,13,9),“訪問”:【20.,42,28,62年,81年,50,90年),},索引=pd.date_range (開始=“2019/08/15”,結束=“2020/03/09”,頻率=“米”))kdf.plot.area ()
就地更新的更廣泛的支持
考拉1.0.0,就地更新係列應用到DataFrame自然好像DataFrame完全是可變的。以前,幾個案子的就地更新係列並沒有反映在DataFrame。
例如,就地更新Series.fillna
更新其DataFrame。
kdf = ks.DataFrame ({“x”:[np.nan,2,3,4np.nan,6]})ks = kdf.xkser.fillna (0原地=真正的)
此外,現在可以使用訪問器更新係列和變化反映到DataFrame如下。
kdf = ks.DataFrame ({“x”:[np.nan,2,3,4np.nan,6]})ks = kdf.xkser.loc [2]=30.
kdf = ks.DataFrame ({“x”:[np.nan,2,3,4np.nan,6]})ks = kdf.xkdf.loc [2,“x”]=30.
更好的支持的缺失值,南和NA
有幾個PySpark之間細微的差別在處理缺失數據和熊貓。例如,缺失的數據通常表示為沒有一個
在PySpark但南
在熊貓。此外,熊貓引入了新的實驗NA
值,目前不支持在考拉非常好。
其他大多數情況下現在固定,考拉是在沉重的發展逐步解決這一問題。例如,Series.fillnanow handles NaN properly考拉1.0.0。
1.0開始使用考拉
安裝方法有很多考拉,如與包經理像pip或conda。指令是可用的考拉安裝指南。對於磚運行時的用戶,你可以按照以下步驟磚上安裝一個圖書館。
也請參考開始部分在考拉文檔,其中包含許多有用的資源。
如果你一直在推遲考拉,現在正是時候。熊貓考拉帶來一個更成熟的實施旨在幫助你工作規模的火花。大型數據集不應該是一個攔截器數據科學項目,和考拉幫助使它容易開始。