bamboolib

預覽

此功能已在公共預覽

請注意

Databricks Runtime 11.0及以上版本支持竹子。

竹子是一個用戶界麵組件,它允許從Databricks內部進行無代碼數據分析和轉換筆記本.竹子幫助用戶更輕鬆地處理數據,並加速常見的數據處理、探索和可視化任務。當用戶用他們的數據完成這類任務時,bambolib會自動生成Python後台代碼。用戶可以與他人共享此代碼,其他人可以在自己的筆記本中運行此代碼,以快速複製那些原始任務。他們還可以使用竹子來使用附加的數據任務擴展那些原始任務,所有這些都不需要知道如何編碼。那些有編碼經驗的人可以擴展這些代碼來創建更複雜的結果。

在幕後,竹子的用途ipywidgets的交互式HTML小部件框架IPython內核.Ipywidgets運行在IPython內核

需求

快速入門

  1. 創建Python筆記本。

  2. 附加筆記本到一個滿足集群需求

  3. 在筆記本的第一個細胞,輸入以下代碼,然後運行細胞。如果是竹子,可以跳過此步驟已經安裝在工作區或集群中

    皮普安裝bamboolib
  4. 在筆記本的第二個單元格中,輸入以下代碼,然後運行該單元格。

    進口bamboolib作為bam
  5. 在筆記本的第三個單元格中,輸入以下代碼,然後運行該單元格。

    bam

    請注意

    或者,您可以打印一個現有的熊貓數據幀來顯示與特定數據幀一起使用的竹子。

  6. 繼續關鍵任務

走查

你可以單獨使用竹子或者與現有的熊貓數據框架

使用竹子本身

在本演練中,您將使用竹子在筆記本中顯示示例銷售數據集的內容。然後使用一些相關的筆記本代碼進行試驗,這些代碼由竹竿自動為您生成。您可以通過查詢和排序銷售數據集內容的副本來完成。

  1. 創建Python筆記本。

  2. 附加筆記本到一個滿足集群需求

  3. 在筆記本的第一個細胞,輸入以下代碼,然後運行細胞。如果是竹子,可以跳過此步驟已經安裝在工作區或集群中

    皮普安裝bamboolib
  4. 在筆記本的第二個單元格中,輸入以下代碼,然後運行該單元格。

    進口bamboolib作為bam
  5. 在筆記本的第三個單元格中,輸入以下代碼,然後運行該單元格。

    bam
  6. 點擊加載虛擬數據

  7. 加載虛擬數據窗格中,為加載一個虛擬數據集用於測試竹竿中,選擇銷售數據集

  8. 點擊執行

  9. 顯示所有行item_type嬰兒食品

    1. 搜索行為列表中,選擇過濾器的行

    2. 過濾器的行窗格,在選擇上麵的列表(在哪裏),選擇選擇行

    3. 在下麵的列表中在哪裏中,選擇item_type

    4. 選擇列在item_type中,選擇有價值的(s)

    5. 選擇值(年代)旁邊的方格有價值的(s)中,選擇嬰兒食品

    6. 點擊執行

  10. 複製此查詢的自動生成的Python代碼:

    1. Cick複製代碼下麵是數據預覽。

  11. 粘貼並修改代碼:

    1. 在筆記本的第四個單元格中,粘貼您複製的代碼。它應該是這樣的:

      進口熊貓作為pddfpdread_csvbamsales_csv#步驟:保留item_type為其中之一的行:Baby Fooddfdf瘋狂的df“item_type”型號([“嬰兒食品”)))
    2. 添加到此代碼中,以便它隻顯示那些行order_prioC,然後運行單元格:

      進口熊貓作為pddfpdread_csvbamsales_csv#步驟:保留item_type為其中之一的行:Baby Fooddfdf瘋狂的df“item_type”型號([“嬰兒食品”)))#添加以下代碼。#步驟:保留order_prio是:C中的一個的行dfdf瘋狂的df“order_prio”型號([“C”)))df

    提示

    除了編寫這些代碼,您還可以通過在第三個單元格中使用竹子來完成同樣的工作,隻顯示其中的那些行order_prioC.此步驟是擴展之前竹子自動生成的代碼的一個示例。

  12. 按行排序地區按升序排列:

    1. 在第四個單元格中的小部件中搜索行為列表中,選擇行排序

    2. 分類列(年代)窗格,在選擇列列表中,選擇地區

    3. 在旁邊的列表裏地區中,選擇提升(a - z)

    4. 點擊執行

    請注意

    這相當於自己編寫以下代碼:

    dfdfsort_values通過“地區”],提升真正的])df

    您也可以在第三個單元格中使用竹子來對行進行排序地區按升序排列。此步驟演示如何使用竹子擴展所編寫的代碼。當您使用竹子時,它會自動在後台為您生成額外的代碼,以便您可以進一步擴展已經擴展的代碼!

  13. 繼續關鍵任務

在已有的DataFrame中使用竹子

在本演練中,您將使用竹子在您的筆記本中顯示熊貓DataFrame.該DataFrame包含一個示例銷售數據集的副本。然後使用一些相關的筆記本代碼進行試驗,這些代碼由竹竿自動為您生成。您可以通過查詢和排序DataFrame的一些內容來完成。

  1. 創建Python筆記本。

  2. 附加筆記本到一個滿足集群需求

  3. 在筆記本的第一個細胞,輸入以下代碼,然後運行細胞。如果是竹子,可以跳過此步驟已經安裝在工作區或集群中

    皮普安裝bamboolib
  4. 在筆記本的第二個單元格中,輸入以下代碼,然後運行該單元格。

    進口bamboolib作為bam
  5. 在筆記本的第三個單元格中,輸入以下代碼,然後運行該單元格。

    進口熊貓作為pddfpdread_csvbamsales_csvdf

    注意,竹子隻支持熊貓DataFrames.要將PySpark數據幀轉換為pandas數據幀,請調用toPandas在PySpark數據幀上。要將Spark DataFrame上的Pandas API轉換為Pandas DataFrame,請調用to_pandasSpark DataFrame上的Pandas API。

  6. 點擊顯示竹子UI

  7. 顯示所有行item_type嬰兒食品

    1. 搜索行為列表中,選擇過濾器的行

    2. 過濾器的行窗格,在選擇上麵的列表(在哪裏),選擇選擇行

    3. 在下麵的列表中在哪裏中,選擇item_type

    4. 選擇列在item_type中,選擇有價值的(s)

    5. 選擇值(年代)旁邊的方格有價值的(s)中,選擇嬰兒食品

    6. 點擊執行

  8. 複製此查詢的自動生成的Python代碼。要做到這一點,單擊複製代碼下麵是數據預覽。

  9. 粘貼並修改代碼:

    1. 在筆記本的第四個單元格中,粘貼您複製的代碼。它應該是這樣的:

      #步驟:保留item_type為其中之一的行:Baby Fooddfdf瘋狂的df“item_type”型號([“嬰兒食品”)))
    2. 添加到此代碼中,以便它隻顯示那些行order_prioC,然後運行單元格:

      #步驟:保留item_type為其中之一的行:Baby Fooddfdf瘋狂的df“item_type”型號([“嬰兒食品”)))#添加以下代碼。#步驟:保留order_prio是:C中的一個的行dfdf瘋狂的df“order_prio”型號([“C”)))df

    提示

    除了編寫這些代碼,您還可以通過在第三個單元格中使用竹子來完成同樣的工作,隻顯示其中的那些行order_prioC.此步驟是擴展之前竹子自動生成的代碼的一個示例。

  10. 按行排序地區按升序排列:

    a.在第四個單元格中的小部件中,單擊行排序

    1. 分類列(年代)窗格,在選擇列列表中,選擇地區

    2. 在旁邊的列表裏地區中,選擇提升(a - z)

    3. 點擊執行

    請注意

    這相當於自己編寫以下代碼:

    dfdfsort_values通過“地區”],提升真正的])df

    您也可以在第三個單元格中使用竹子來對行進行排序地區按升序排列。此步驟演示如何使用竹子擴展所編寫的代碼。當您使用竹子時,它會自動在後台為您生成額外的代碼,以便您可以進一步擴展已經擴展的代碼!

  11. 繼續關鍵任務

關鍵任務

將小部件添加到單元格中

場景:您希望在單元格中顯示bambolib小部件。

  1. 確保筆記本符合需求bamboolib。

  2. 如果竹子不是已經安裝在工作區或集群中在筆記本的單元格中運行以下代碼,最好是在第一個單元格中:

    皮普安裝bamboolib
  3. 在筆記本中運行以下代碼,最好是在筆記本的第一個或第二個單元格中:

    進口bamboolib作為bam
  4. 選項1在您希望小部件出現的單元格中,添加以下代碼,然後運行單元格:

    bam

    小部件出現在代碼下麵的單元格中。

    或者:

    選項2:在包含對對象引用的單元格中熊貓DataFrame,打印DataFrame。例如,給定以下DataFrame定義,運行單元格:

    進口熊貓作為pddatetime進口datetime日期dfpdDataFrame({“一個”123.],“b”2.3.4.],“c”“string1”“string2相等”“string3”],' d '日期200011),日期200021),日期20003.1],“e”datetime200011120),datetime200012120),datetime200013.120})df

    小部件出現在代碼下麵的單元格中。

    注意,竹子隻支持熊貓DataFrames.要將PySpark數據幀轉換為pandas數據幀,請調用toPandas在PySpark數據幀上。要將Spark DataFrame上的Pandas API轉換為Pandas DataFrame,請調用to_pandasSpark DataFrame上的Pandas API。

清除小部件

場景:您希望清除小部件的內容,然後將新數據讀入現有小部件。

選項1:在包含目標小部件的單元格中運行以下代碼:

bam

控件清除,然後重新顯示Databricks:從DBFS讀取CSV文件Databricks:加載數據庫表,加載虛擬數據按鈕。

請注意

如果錯誤的名字“砰”定義出現時,在筆記本中運行以下代碼(最好是在筆記本的第一個單元格中),然後重試:

進口bamboolib作為bam

選項2:在包含對對象引用的單元格中熊貓DataFrame,再次運行單元格打印DataFrame。小部件清除並顯示新數據。

數據加載任務

將示例數據集的內容讀入小部件

場景:您希望將一些示例數據讀取到小部件中,例如一些假裝的銷售數據,以便測試小部件的功能。

  1. 點擊加載虛擬數據

    請注意

    如果加載虛擬數據是不可見的,用選項1清除小部件再試一次。

  2. 加載虛擬數據窗格中,為加載一個虛擬數據集用於測試竹竿,選擇要加載的數據集的名稱。

  3. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  4. 點擊執行

    小部件顯示數據集的內容。

提示

您可以切換當前小部件來顯示不同示例數據集的內容:

  1. 在當前小部件中,單擊加載虛擬數據選項卡。

  2. 按照前麵的步驟將另一個示例數據集的內容讀入小部件。

將CSV文件的內容讀入小部件

場景:您希望將Databricks工作空間中的CSV文件的內容讀取到小部件中。

  1. 點擊Databricks:從DBFS讀取CSV文件

    請注意

    如果Databricks:從DBFS讀取CSV文件是不可見的,用選項1清除小部件再試一次。

  2. 從DBFS讀取CSV窗格中,瀏覽到包含目標CSV文件的位置。

  3. 選擇目標CSV文件。

  4. Dataframe名字,為CSV文件內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  5. CSV值分隔符,輸入CSV文件中分隔值的字符,或不輸入(逗號)字符作為默認值分隔符。

  6. 十進製分隔符,在CSV文件中輸入分隔小數點的字符,或不輸入(點)字符作為默認值分隔符。

  7. 行限製:讀取前N行-空為沒有限製,輸入要讀入小部件的最大行數,或者保留100000作為默認行數,或將此框保留為空,以指定不進行行限製。

  8. 點擊打開CSV文件

    小部件根據您指定的設置顯示CSV文件的內容。

提示

您可以切換當前小部件來顯示不同CSV文件的內容:

  1. 在當前小部件中,單擊從DBFS讀取CSV選項卡。

  2. 按照前麵的步驟將其他CSV文件的內容讀入小部件。

將數據庫表的內容讀入小部件

場景:您希望將Databricks工作空間中的數據庫表的內容讀入小部件。

  1. 點擊Databricks:加載數據庫表

    請注意

    如果Databricks:加載數據庫表是不可見的,用選項1清除小部件再試一次。

  2. Databricks:加載數據庫表窗格中,為Database -默認數據庫為空,輸入目標表所在數據庫的名稱,或將此框保留為空,以指定默認的數據庫。

  3. 表格,輸入目標表的名稱。

  4. 行限製:讀取前N行-空為沒有限製,輸入要讀入小部件的最大行數,或者保留100000作為默認行數,或將此框保留為空,以指定不進行行限製。

  5. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  6. 點擊執行

    小部件根據您指定的設置顯示表的內容。

提示

您可以切換當前小部件以顯示不同表的內容:

  1. 在當前小部件中,單擊Databricks:加載數據庫表選項卡。

  2. 按照前麵的步驟將另一個表的內容讀入小部件。

數據操作任務

竹子提供超過50個數據動作。下麵是一些更常見的入門數據操作任務。

選擇列

場景:您希望僅按名稱、按數據類型或按匹配某些正則表達式顯示特定的表列。例如,在假人銷售數據集,您隻想顯示item_type而且sales_channel列,或者您希望隻顯示包含字符串的列_date在列名中。

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型選擇,然後選擇選擇或刪除列

    • 選擇選擇或刪除列

  2. 選擇或刪除列窗格,在選擇下拉列表,選擇選擇

  3. 選擇目標列名或包含條件。

  4. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  5. 點擊執行

刪除列

場景:您希望按名稱、按數據類型或按匹配某些正則表達式隱藏特定的表列。例如,在假人銷售數據集,你想要隱藏order_prioorder_date,ship_date列,或者您希望隱藏僅包含日期-時間值的所有列。

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型下降,然後選擇選擇或刪除列

    • 選擇選擇或刪除列

  2. 選擇或刪除列窗格,在選擇下拉列表,選擇下降

  3. 選擇目標列名或包含條件。

  4. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  5. 點擊執行

過濾器的行

場景:您希望根據匹配或缺失的特定列值等條件顯示或隱藏特定的表行。例如,在假人銷售數據集,您希望隻顯示那些行item_type列的值設置為嬰兒食物

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型過濾器,然後選擇過濾器的行

    • 選擇過濾器的行

  2. 過濾器的行窗格,在選擇上麵的下拉列表在哪裏中,選擇選擇行刪除行

  3. 指定第一個過濾條件。

  4. 單擊,可添加另一個過濾條件添加條件,並指定下一個過濾條件。重複需要的動作。

  5. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  6. 點擊執行

行排序

場景:您希望基於一個或多個列中的值對表行進行排序。例如,在假人銷售數據集,你想顯示行地區列的值按從A到Z的字母順序排列。

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型排序,然後選擇行排序

    • 選擇行排序

  2. 分類列(年代)窗格中,選擇要排序的第一列和排序順序。

  3. 若要添加另一個排序條件,請單擊添加一列,並指定下一個排序條件。重複需要的動作。

  4. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  5. 點擊執行

對行和列任務進行分組

通過單個聚合函數對行和列進行分組

場景:您希望通過計算分組顯示行和列結果,並希望為這些分組分配自定義名稱。例如,在假人銷售數據集時,您希望按國家列的值,顯示包含相同內容的行數國家值,並給出計算計數的列表名稱country_count

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型集團,然後選擇分組和聚合(帶重命名)

    • 選擇分組和聚合(帶重命名)

  2. 組通過列重命名窗格中,選擇第一個計算要分組的列,並可選地為計算列指定名稱。

  3. 單擊,添加另一個計算添加計算,並指定下一個計算和列名。重複需要的動作。

  4. 指定將結果存儲在哪裏。

  5. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  6. 點擊執行

按多個聚合函數對行和列進行分組

場景:您希望通過計算分組顯示行和列結果。例如,在假人銷售數據集時,您希望按地區國家,sales_channel列的值,顯示包含相同內容的行數地區而且國家價值sales_channel,以及total_revenue通過獨特的組合地區國家,sales_channel

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型集團,然後選擇分組和聚合(默認)

    • 選擇分組和聚合(默認)

  2. 組通過列重命名窗格中,選擇要分組的列並進行第一次計算。

  3. 單擊,添加另一個計算添加計算,並指定下一個計算。重複需要的動作。

  4. 指定將結果存儲在哪裏。

  5. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  6. 點擊執行

刪除缺少值的行

場景:您需要刪除指定列缺少值的任何行。例如,在假人銷售數據集,您需要刪除所有有一個缺失的行item_type價值。

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型下降刪除,然後選擇刪除缺失的值

    • 選擇刪除缺失的值

  2. 刪除缺失的值窗格中,選擇列以刪除該列缺少值的任何行。

  3. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  4. 點擊執行

刪除重複的行

場景:您希望刪除任何具有指定列的重複值的行。例如,在假人銷售數據集,您需要刪除彼此完全相同的任何行。

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型下降刪除,然後選擇刪除/刪除重複的

    • 選擇刪除/刪除重複的

  2. 刪除重複的窗格中,選擇列以刪除為這些列具有重複值的任何行,然後選擇是否保留具有重複值的第一行或最後一行。

  3. Dataframe名字,為表內容的編程標識符輸入一個名稱作為DataFrame,或離開df作為默認的編程標識符。

  4. 點擊執行

查找並替換丟失的值

場景:您想要用任何具有指定列的行的替換值替換缺失的值。例如,在假人銷售數據集方法中缺少值的任何行都要替換item_type值為的列未知的類型

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型找到取代,然後選擇查找並替換丟失的值

    • 選擇查找並替換丟失的值

  2. 替換缺失的值窗格中,選擇要為其替換缺失值的列,然後指定替換值。

  3. 點擊執行

創建列公式

場景:您希望創建使用唯一公式的列。例如,在假人銷售數據集,您要創建一個名為profit_per_unit,顯示除的結果total_profit列的值。units_sold每一行的列值。

  1. 數據選項卡,在搜索行為下拉列表,執行以下任一操作:

    • 類型公式,然後選擇新的列公式

    • 選擇新的列公式

  2. 替換缺失的值窗格中,選擇要為其替換缺失值的列,然後指定替換值。

  3. 點擊執行

數據操作曆史任務

查看小部件中執行的操作列表

場景:您希望看到小部件中所做的所有更改的列表,從最近的更改開始。

點擊曆史.操作列表出現在轉換的曆史窗格。

撤消小部件中最近執行的操作

場景:您希望恢複在小部件中所做的最近的更改。

做以下任何一件事:

  • 單擊逆時針方向的箭頭圖標。

  • 點擊曆史,而在轉換的曆史窗格中,單擊撤銷最後一步

重做小部件中最近執行的操作

場景:您希望恢複在小部件中進行的最近的恢複。

做以下任何一件事:

  • 單擊順時針箭頭圖標。

  • 點擊曆史,而在轉換的曆史窗格中,單擊恢複最後一步

更改小部件中最近采取的操作

場景:您希望更改小部件中最近的更改。

  1. 做以下任何一件事:

    • 點擊鉛筆圖標。

    • 點擊曆史,而在轉換的曆史窗格中,單擊編輯最後一步

  2. 進行所需的更改,然後單擊執行

獲取代碼以編程方式將小部件的當前狀態重新創建為DataFrame

場景:您希望獲得以編程方式重新創建當前小部件狀態的Python代碼,該狀態表示為pandas DataFrame。您希望在此工作簿的不同單元格或完全不同的工作簿中運行此代碼。

  1. 點擊獲取代碼

  2. 出口代碼窗格中,單擊複製代碼.代碼被複製到係統的剪貼板。

  3. 將代碼粘貼到此工作簿中的另一個單元格或另一個工作簿中。

  4. 編寫額外的代碼以編程方式使用這個pandas DataFrame,然後運行單元格。例如,要顯示DataFrame的內容,假設您的DataFrame以編程方式由df

    #你在這裏粘貼的代碼,後麵跟著…df

限製

  • 使用bamolib進行數據處理限製在大約1,000萬行。此限製基於pandas和集群的計算資源。

  • 使用竹子進行數據可視化的限製大約為1萬行。這個限製是基於情節的。