[英]multiselect option using databricks widgets
我的數據框中有 10 到 12 列。 我需要添加一個多選小部件,我可以在其中選擇所有列或僅選擇某些列並將結果存儲為列表。 如果明天列值增加,我也需要將它們添加到小部件中。 如何解決這個用例?
來自 AL 的列名
我需要列出所有列,用戶可以選擇所有列或僅選擇少數列,並且所有選定的列都應存儲為列表
您可以使用多選小部件來執行此操作。 選擇是數據框的列。 我添加了一個額外的選項'*'
來選擇所有列。 這將是默認選擇(默認情況下您只能有一個條目)。
編輯:添加了對未選擇列的情況的檢查。
設置示例 df 和小部件
df = spark.sql('SELECT 1 AS A, 2 AS B, 3 AS C')
dbutils.widgets.removeAll()
dbutils.widgets.multiselect('Columns', '*', choices=['*'] + df.columns)
獲取小部件值並制作列表。
widget_columns = dbutils.widgets.get('Columns')
selection = widget_columns.split(',') if widget_columns else []
print(selection)
# output ['*']
然后,您可以在選擇或其他地方使用它。
df.select(*selection).show()
+---+---+---+
| A| B| C|
+---+---+---+
| 1| 2| 3|
+---+---+---+
如果你想要一個包含所有列的列表而不是'*'
,你需要添加一個額外的檢查來這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.