Netflix 開源 Polynote:對標 Jupyter,一個筆記本運行多種語言

談到數據科學領域的開發工具,Jupyter 無疑是很是知名的一種。它具備靈活高效的特色,很是適合進行開發、調試、分享和教學。近日,Netflix(奈飛)竟然也玩起了跨界,他們開源了一個名爲 Polynote 的程序。相似於 Jupyter,Polynote 能夠進行開發工做,可是可以支持包括 Python 在內的多種編程語言。python

 

據奈飛在 Medium 的文章中介紹,Polynote 開發的目的是爲了給數據科學家和機器學習研究者提供一個筆記本環境,使他們可以自由且無縫地和奈飛自己基於 JVM 的機器學習平臺結合。這一平臺很大程度上使用的是 Scala 語言,還有一些基於 Python 的機器學習和可視化代碼庫。Polynote 以前已經在奈飛內部的團隊中使用了,如今他們但願將其開源,以促進相關研究的發展。面試

 

Polynote 的五大特性編程

 

據介紹,Polynote 有五個特性值得關注。瀏覽器

 

支持多語言服務器

 

和 Jupyter Notebook 不一樣,Polynote 自己支持多種語言編程。除了對 Scala 語言的一級支持,Polynote 還在一個筆記本內支持多語言運行,包括 Scala、Python、SQL 和 Vega,並且這些語言都具有自動補全功能。網絡

 

實現多語言支持的是 polyglot。它可讓用戶在不一樣的塊中寫不一樣的代碼。另外,每一個代碼塊都會接受符合輸入名的變量,並返回要求的變量給出下一段代碼,無論這些代碼是什麼樣的語言。這樣可讓用戶按照須要選擇某種語言中最合適的工具。機器學習

 

編輯功能加強編程語言

 

除了和 Jupyter Notebook 同樣能夠在代碼編輯中插入文本編輯,Polynote 能夠很容易地插入 LaTex 公式。工具

 

另外,文本編輯方面有經常使用的編輯功能。學習

運行加強

 

在運行的時候,運行的代碼塊和代碼行會顯示出來,方便開發者查看運行狀況。

 

如圖所示,Polynote 在運行時會顯示當前運行的代碼塊和代碼,以及完成某個任務須要的時間。

 

依賴和配置管理

 

Polynote 支持對筆記本的依賴和配置進行管理,這樣能夠避免不少運行時的問題。

 

 如上圖所示,polynote 的配置和依賴管理界面相似於 PyCharm 等高級 IDE,能夠自行改變各類依賴的版本和安裝方法。和 Jupyter Notebook 不一樣,這些配置是不須要外部文件或集羣服務器進行的。

 

數據可視化

 

Polynote 和兩個很是著名的數據可視化工具進行告終合,它們分別是 Vega 和 Mataplotlib。Polynote 同時也對數據挖掘有着自然支持,這包括數據表視圖、表格檢查工具、圖表構建工具,以及對 Vega 的支持。

 

 

 此外,Polynote 還有一些有趣的小特性,如將代碼塊的位置記錄,使得代碼庫可以按照順序運行,以保證可復現性。

 

安裝方法

 

目前,Polynote 是一個 notebook 程序,所以用戶能夠在本地使用,或搭建網絡服務。

 

首先,用戶須要下載這一基於 JVM 的服務器應用(用來提供網絡服務代理)。若是要在本地環境下使用,用戶能夠從開源列表中找到最新版本並下載名爲「polynote-dist.tar.gz」的文件(文件能夠從 Assets 文件下找到)。

 

 下載後進入目錄,而後進行準備。

 

準備內容目前有如下一些:

 

  • Polynote 只在 OSX 和 Linux 進行了測試,用 Chrome 瀏覽器進行代理,所以做者們但願用戶可以及時反饋意見;

  • 若是用戶須要 Spark 支持,則須要安裝 Apache Spark;

  • 用戶須要使用 Python3,而不是 Python2。

 

還有一些其餘的依賴,安裝代碼以下:

 

 若是要進行配置,用戶須要拷貝 config-template.yml 文件到 config.yml 文件中,並取消須要修改的配置上的註釋功能。

 

運行時,運行如下文件(在下載的文件中):

 

 在這裏我主要是想表達咱們必定要邊看源碼,邊經過圖例記錄下來,深刻理解,對你學習頗有幫助的。寫到這裏,感謝閱讀!

給你們分享一個學習羣 筆試面試題以及python的進階學習資料都更新在羣裏 歡迎你們一塊兒來學習

點擊這裏加入該羣學習

相關文章
相關標籤/搜索