bamboolib

预览

此功能已在公共预览

请注意

Databricks Runtime 11.0及以上版本支持bamboolib。

bamboolib是一个用户界面组件,允许从Databricks内部进行无代码数据分析和转换笔记本.Bamboolib帮助用户更轻松地处理数据,并加快常见的数据整理、探索和可视化任务。当用户用他们的数据完成这些任务时,bamboolib会自动生成Python后台代码。用户可以与其他人共享此代码,其他人可以在自己的笔记本中运行此代码,以快速重现那些原始任务。他们还可以使用bamboolib使用额外的数据任务来扩展这些原始任务,所有这些都不需要知道如何编码。那些有编码经验的人可以扩展这些代码来创建更复杂的结果。

在幕后,竹子的用途ipywidgets的交互式HTML小部件框架IPython内核.Ipywidgets运行在IPython内核

需求

快速入门

  1. 创建Python笔记本。

  2. 附加笔记本到一个符合集群的需求

  3. 在笔记本的第一个细胞,输入以下代码,然后运行细胞。这一步可以跳过,如果竹子是已经安装在工作区或集群中

    皮普安装bamboolib
  4. 在笔记本的第二个单元格中,输入以下代码,然后运行单元格。

    进口bamboolib作为bam
  5. 在笔记本的第三个单元格中,输入以下代码,然后运行该单元格。

    bam

    请注意

    或者,你可以打印一个现有的熊猫数据框架来显示bamboolib以用于特定的DataFrame。

  6. 继续关键任务

走查

你可以单独使用竹子或使用现有的熊猫数据框架

竹子可以单独使用

在本演练中,您将使用bambolib在笔记本中显示示例销售数据集的内容。然后使用bamboolib自动为您生成的一些相关笔记本代码进行试验。最后,查询和排序销售数据集内容的副本。

  1. 创建Python笔记本。

  2. 附加笔记本到一个符合集群的需求

  3. 在笔记本的第一个细胞,输入以下代码,然后运行细胞。这一步可以跳过,如果竹子是已经安装在工作区或集群中

    皮普安装bamboolib
  4. 在笔记本的第二个单元格中,输入以下代码,然后运行单元格。

    进口bamboolib作为bam
  5. 在笔记本的第三个单元格中,输入以下代码,然后运行该单元格。

    bam
  6. 点击加载虚拟数据

  7. 加载虚拟数据窗格中,为加载用于测试bamboolib的虚拟数据集中,选择销售数据集

  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为其中之一的行dfdf疯狂的df“order_prio”型号([“C”)))df

    提示

    不需要编写这段代码,还可以通过在第三个单元格中使用bamboolib来只显示这些行order_prioC.这一步是扩展前面bamboolib自动生成的代码的一个示例。

  12. 对行进行排序地区按升序排列:

    1. 控件中的第四个单元格中的小部件中搜索行为列表中,选择行排序

    2. 分类列(年代)窗格,在选择列列表中,选择地区

    3. 在旁边的列表里地区中,选择提升(a - z)

    4. 点击执行

    请注意

    这相当于你自己写下面的代码:

    dfdfsort_values通过“地区”),提升真正的])df

    你也可以在第三个单元格中使用bamboolib对行进行排序地区按升序排列。这一步演示了如何使用bamboolib扩展所编写的代码。当您使用bamboolib时,它会自动在后台为您生成额外的代码,这样您就可以进一步扩展已经扩展的代码!

  13. 继续关键任务

使用bamboolib与现有的数据框架

在本演练中,您将使用bamboolib在笔记本中显示控件的内容熊猫DataFrame.此DataFrame包含示例销售数据集的副本。然后使用bamboolib自动为您生成的一些相关笔记本代码进行试验。您可以通过查询和排序DataFrame的一些内容来完成。

  1. 创建Python笔记本。

  2. 附加笔记本到一个符合集群的需求

  3. 在笔记本的第一个细胞,输入以下代码,然后运行细胞。这一步可以跳过,如果竹子是已经安装在工作区或集群中

    皮普安装bamboolib
  4. 在笔记本的第二个单元格中,输入以下代码,然后运行单元格。

    进口bamboolib作为bam
  5. 在笔记本的第三个单元格中,输入以下代码,然后运行该单元格。

    进口熊猫作为pddfpdread_csvbamsales_csvdf

    注意竹叶只支持熊猫DataFrames.要将PySpark DataFrame转换为pandas DataFrame,请调用toPandasPySpark DataFrame。要将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为其中之一的行dfdf疯狂的df“order_prio”型号([“C”)))df

    提示

    不需要编写这段代码,还可以通过在第三个单元格中使用bamboolib来只显示这些行order_prioC.这一步是扩展前面bamboolib自动生成的代码的一个示例。

  10. 对行进行排序地区按升序排列:

    a.在第四个单元格中的小部件中,单击行排序

    1. 分类列(年代)窗格,在选择列列表中,选择地区

    2. 在旁边的列表里地区中,选择提升(a - z)

    3. 点击执行

    请注意

    这相当于你自己写下面的代码:

    dfdfsort_values通过“地区”),提升真正的])df

    你也可以在第三个单元格中使用bamboolib对行进行排序地区按升序排列。这一步演示了如何使用bamboolib扩展所编写的代码。当您使用bamboolib时,它会自动在后台为您生成额外的代码,这样您就可以进一步扩展已经扩展的代码!

  11. 继续关键任务

关键任务

将小部件添加到单元格中

场景:您希望bamboolib小部件显示在单元格中。

  1. 确保笔记本符合需求bamboolib。

  2. 若竹不是已经安装在工作区或集群中在笔记本的一个单元格中运行以下代码,最好是在第一个单元格中:

    皮普安装bamboolib
  3. 在笔记本中运行以下代码,最好是在笔记本的第一个或第二个单元格中:

    进口bamboolib作为bam
  4. 选项1:在要显示小部件的单元格中,添加以下代码,然后运行单元格:

    bam

    小部件出现在代码下面的单元格中。

    或者:

    选项2类的引用的单元格中熊猫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 DataFrame转换为pandas DataFrame,请调用toPandasPySpark DataFrame。要将Spark DataFrame上的Pandas API转换为Pandas DataFrame,请调用to_pandasSpark DataFrame上的Pandas API。

清除小部件

场景:您希望清除小部件的内容,然后将新数据读入现有小部件。

选项1:在包含目标小部件的单元格中运行以下代码:

bam

控件清除,然后重新显示数据:从DBFS中读取CSV文件Databricks:加载数据库表,加载虚拟数据按钮。

请注意

如果错误的名字“砰”定义出现时,在笔记本中运行以下代码(最好是在笔记本的第一个单元格中),然后重试:

进口bamboolib作为bam

选项2类的引用的单元格中熊猫DataFrame,通过再次运行单元格再次打印DataFrame。小部件清除,然后显示新数据。

数据加载任务

将示例数据集的内容读入小部件

场景:您希望将一些示例数据读入小部件,例如一些假装的销售数据,以便测试小部件的功能。

  1. 点击加载虚拟数据

    请注意

    如果加载虚拟数据不可见,使用选项1清除小部件再试一次。

  2. 加载虚拟数据窗格中,为加载用于测试bamboolib的虚拟数据集,选择要加载的数据集的名称。

  3. Dataframe名字,输入表内容的编程式标识符的名称为DataFrame,或离开df作为默认的编程标识符。

  4. 点击执行

    小部件显示数据集的内容。

提示

您可以切换当前小部件来显示不同示例数据集的内容:

  1. 在当前小部件中,单击加载虚拟数据选项卡。

  2. 按照前面的步骤将其他示例数据集的内容读入小部件。

将CSV文件的内容读入小部件

场景:您希望将Databricks工作空间内的CSV文件的内容读入小部件。

  1. 点击数据:从DBFS中读取CSV文件

    请注意

    如果数据:从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:加载数据库表窗格中,为数据库-默认数据库为空,输入目标表所在数据库的名称,或将此框保留为空以指定默认的数据库。

  3. 表格,输入目标表的名称。

  4. 行限制:读取前N行-留空无限制,输入要读入小部件的最大行数,或者离开100000作为默认行数,或将此框保留为空以指定不限制行数。

  5. Dataframe名字,输入表内容的编程式标识符的名称为DataFrame,或离开df作为默认的编程标识符。

  6. 点击执行

    小部件根据您指定的设置显示表的内容。

提示

你可以切换当前小部件来显示不同表格的内容:

  1. 在当前小部件中,单击Databricks:加载数据库表选项卡。

  2. 按照前面的步骤将其他表的内容读入小部件。

数据行动任务

Bamboolib提供超过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代码,以编程方式重新创建当前小部件的状态,表示为熊猫数据帧。您希望在此工作簿的不同单元格或完全不同的工作簿中运行此代码。

  1. 点击获取代码

  2. 出口代码窗格中,单击复制代码.代码被复制到系统的剪贴板。

  3. 将代码粘贴到此工作簿中的其他单元格或其他工作簿中。

  4. 编写额外的代码以编程方式使用这个pandas DataFrame,然后运行单元格。例如,要显示DataFrame的内容,假设您的DataFrame以编程方式由df

    #你粘贴的代码在这里,然后是…df

限制

  • 使用bamboolib进行数据争论限制在大约1000万行。此限制基于pandas和集群的计算资源。

  • 使用bamboolib进行数据可视化限制在大约10,000行。这个限制是基于情节的。