数据库多选下拉菜单选择/取消选择所有值

问题描述

我们在Databricks中使用多选下拉菜单,根据多选小部件中的选择,查询结果为图形数据。目前,我们可以逐个选择或取消选择选项,但我们希望有一种方法来选择和取消选择Widget中的所有选项。

多选小工具的代码:

dbutils.widgets.multiselect("channel", "Temp", [str(x) for x in channel])

解决方案

我认为多选小工具不可能做到这一点。我唯一的建议是,当您从小部件读入值时,您可以在小部件中使用一些选项,这些选项是以所需的行为实现的。

例如,使用添加的所有和无选项创建小部件

channel = ["Foo", "Bar", "Temp"]
dbutils.widgets.multiselect("channel", "Temp", [str(x) for x in channel] + ["None",  "All"])
一种可能的实现是,当选择了覆盖所有其他选择的&None&Quot;时。如果选择了覆盖除&Quot;None;之外的所有其他选择的&Quot;All&Quot;。

out = dbutils.widgets.get("channel").split(",")

if "None" in out:
  channel_out = ['']
elif "All" in out:
  channel_out = channel
else:
  channel_out = out

这看起来不会像您在用户界面中想要的那样好,但它为您提供了一种简单的方法,可以在为一组频道运行,然后选择全部或不运行之间进行切换。

相关文章