當前位置:
首頁 > 最新 > Dataiku DSS Code Recipe 介紹

Dataiku DSS Code Recipe 介紹

引言

上一篇我們通過介紹 Dataiku DSS 中可視化 Prepare Recipe,了解了 Dataiku DSS 中 Recipe 的概念。這一篇我們主要來介紹 Code Recipe —— 通過寫代碼的方式完成從數據集到數據集的數據處理過程。

點擊一個數據集,就可以看到右側當前數據集可用的 Code Recipe。例如我們點擊一個上傳的數據集:Iris_data1,可以看到當前數據集可用的 Code Recipe 包括:

Python

R

Shell

Spark SQL

Spark Scala

PySpark

Spark R

Dataiku 會根據數據集的類型來識別可用的 Code Recipe,如果某個 Recipe 在當前數據集上不可用或 Code Recipe 的環境沒有正確安裝,那麼 Code Recipe 就以灰色的方式顯示。如下圖,上傳的數據集可以使用的 Code Recipe。

Python Code Recipe

點擊 Irisdata1 數據集,創建一個 Python 的 Code Recipe。在用數據集 Irisdata1 數據集創建 Code Recipe 時,可以對當前 Recipe 添加多個輸入和輸出數據集。Dataiku DSS 中的大部分 Code Recipe 是支持多個輸入和多個輸出的。創建好 Python Code Recipe 界面以後,就會進入 Code Recipe 的編輯界面。

Code Recipe 的界面左側顯示了輸入和輸出數據集的名稱和欄位,用戶可以快速的將數據集名稱或欄位插入到右側的編輯區域中。右側是編寫 Code Recipe 具體 Code 的部分。在 Python Code Recipe 中,Dataiku 提供了 Dataiku DSS 中數據集(DataSet)轉換為 Pandas Dataframe 的能力和將 Dataframe 轉化為 Dataiku DSS 數據集(DataSet)的能力。因此,用戶只要修改中間部分代碼,在熟悉的 Pandas 上做操作,即可以完成數據的清洗和轉化。

Python 數據集(Dataset)和 Dataframe 互轉代碼:

Code Recipe 不同於可視化 Recipe 的一點是:Code Recipe 的運行不是在抽樣數據上運行,而是在整個輸入數據集上運行,沒有辦法實時的看到數據的探索結果。因此,Dataiku DSS 在 Python 的 Code Recipe 界面提供了在 Notebook 中編輯的能力(EDIT IN Notebook),用戶可以點擊 EDIT IN Notebook,進入 Notebook,用 Notebook 的方式來互動式探索數據。

這時候,系統會自動將 Code Recipe 中的代碼複製到新建的臨時 Notebook 中。

當在 Notebook 中完成數據探索時,可以繼續將 Notebook 保存成 Code Recipe,Notebook 中的代碼會自動同步到 Code Recipe 中。這種設計為用戶提供了更加順滑構建 Code Recipe 的方式。

需要注意的是,在 Code Recipe 中打開的 Notebook,在關閉 Code Recipe 時依然在後台運行,不會自動關閉,需要用戶主動去關閉。這種情況可能會造成資源的浪費,資源有限的情況下,甚至讓整個伺服器都會掛掉。

在 Code Recipe 編寫完成以後,用戶可以進行代碼的驗證和運行。點擊運行,就會對輸入數據集執行當前的 Recipe 邏輯。同樣,在運行的時候,Dataiku 會自動監測當前 Code Recipe 的輸入和輸出數據集是否與代碼中的一致,如果不一致就會報錯。

此外,Python Code Recipe 中的高級設置 Advanced 中,可以設置當前 Code Recipe 的 Python 執行環境,用戶可以根據代碼的要求和數據的大小配置不同的運行環境。

其他類似 Code Recipe

對於 R、Spark Scala、Spark R 和 PySpark 來說,Dataiku DSS 的處理邏輯與 Python 是一致的,都是將數據集(DataSet)轉化為對應的 Dataframe,然後將處理後的 Dataframe 轉化為數據集(DataSet)。

R 數據集(Dataset)和 Dataframe 互轉代碼:

Spark R 數據集(Dataset)和 Dataframe 互轉代碼:

PySpark 數據集(Dataset)和 Dataframe 互轉代碼:

PySpark 數據集(Dataset)和 Dataframe 互轉代碼:

Spark SQL Code Recipe

Spark SQL 類型的 Code Recipe 與上面的不太一致。首先,Spark SQL 的 Code Recipe 只允許有一個輸出數據集。Spark SQL Code Recipe 中,表現形式上不再對數據集進行專門的轉化,用戶可以直接用 Spark SQL 來操作數據集,很大程度上方便了用戶對 Spark SQL 的使用。在這裡,用戶可以把數據集看成一個數據表。同樣,在高級設置中,可以配置當前 Recipe 的具體 Spark 執行配置,並完成配置。

最後,除了以上主要的幾個 Code Recipe 以外,SQL 類型 的 Code Recipe 只能操作 SQL 表,Shell 腳本允許用戶調用 Dataiku DSS 中的對象和參數來處理數據。其他幾個 Code Recipe 後續繼續研究。Dataiku DSS 為眾多語言提供了數據集和 Dataframe 互相轉換的方式,這樣就保留 Code Recipe 足夠的靈活性,方便寫代碼的用戶專註於使用最熟悉的代碼來實現數據探索和處理。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 TalkingData數據學堂 的精彩文章:

協作式數據科學平台 Dataiku DSS 基本概念介紹
南京大學成立人工智慧學院

TAG:TalkingData數據學堂 |