簡體   English   中英

使用 databricks 小部件的多選選項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM