Apache Zeppelin动态表单功能详解

Apache Zeppelin动态表单功能详解

zeppelin apache/zeppelin: 这是一个开源的数据分析平台,用于协作式数据分析、可视化和笔记本共享。它允许开发者创建和共享笔记本,其中包含数据预处理、分析和可视化步骤。适合数据分析师和数据科学家。 zeppelin 项目地址: https://gitcode.com/gh_mirrors/zeppe/zeppelin

什么是动态表单

Apache Zeppelin的动态表单功能允许用户在Notebook中创建交互式输入控件,这些控件可以动态地影响代码执行结果。根据不同的语言后端,Zeppelin提供了两种创建动态表单的方式:

  1. 使用模板语法(简单易用)
  2. 通过编程方式创建(更灵活)

动态表单可以有不同的作用域:

  • 段落(paragraph)作用域:仅在当前段落有效
  • 笔记(note)作用域:在整个笔记的所有段落中都可用

模板语法创建表单(段落作用域)

这是最简单直接的创建方式,适用于Markdown、Shell、Spark SQL等后端语言。

文本输入框

使用${formName}语法创建文本输入框:

请输入你的名字:${name}

设置默认值:

请输入你的名字:${name=Zeppelin}
密码输入框

使用${password:formName}语法创建密码输入框:

请输入密码:${password:secret}
下拉选择框

基本语法:

选择星期:${day=1,1(星期一)|2(星期二)|3(星期三)}

其中:

  • day是变量名
  • 1是默认值
  • 1(星期一)表示选项值为1,显示文本为"星期一"
复选框

多选语法:

选择水果:${checkbox:fruit=apple|orange,apple(苹果)|banana(香蕉)|orange(橙子)}

可以指定分隔符:

选择水果:${checkbox(:):fruit=apple|orange,apple(苹果)|banana(香蕉)|orange(橙子)}

自动执行控制

默认情况下,修改选择框值会自动执行段落。如需禁用此功能:

  1. 点击段落右上角的设置图标
  2. 取消勾选"Run on selection change"选项
  3. 仍可通过按Enter键手动执行

模板语法创建表单(笔记作用域)

语法与段落作用域相同,但以两个$开头,例如:

全局输入:$${global_input}

编程方式创建表单

某些语言后端(如Spark)提供了API来编程创建表单。

Scala/Python示例

文本输入框
// Scala
println("Hello "+z.textbox("name"))
# Python
print("Hello "+z.textbox("name"))
带默认值的文本输入框
// Scala
println("Hello "+z.textbox("name", "sun"))
密码输入框
// Scala
print("Password is "+ z.password("my_password"))
下拉选择框
// Scala
println("Hello "+z.select("day", Seq(
  ("1","mon"), ("2","tue"), ("3","wed"),
  ("4","thurs"), ("5","fri"), ("6","sat"), ("7","sun"))))
复选框
// Scala
val options = Seq(("apple","Apple"), ("banana","Banana"), ("orange","Orange"))
println("Hello "+z.checkbox("fruit", options).mkString(" and "))

编程方式创建表单(笔记作用域)

笔记作用域的API与段落作用域类似,但方法名前加"note"前缀:

| 段落作用域方法 | 笔记作用域方法 | |---------------|---------------| | textbox/input | noteTextbox | | select | noteSelect | | checkbox | noteCheckbox |

使用建议

  1. 对于简单需求,优先使用模板语法,它更直观易用
  2. 需要复杂逻辑或动态生成选项时,使用编程方式
  3. 需要跨段落共享数据时,使用笔记作用域表单
  4. 表单变量可以像普通变量一样在代码中使用
  5. 注意不同语言后端对动态表单的支持可能不同

动态表单大大增强了Zeppelin Notebook的交互性,使数据分析过程更加灵活高效。通过合理使用各种表单类型和作用域,可以构建出功能丰富的数据分析工作流。

zeppelin apache/zeppelin: 这是一个开源的数据分析平台,用于协作式数据分析、可视化和笔记本共享。它允许开发者创建和共享笔记本,其中包含数据预处理、分析和可视化步骤。适合数据分析师和数据科学家。 zeppelin 项目地址: https://gitcode.com/gh_mirrors/zeppe/zeppelin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姬如雅Brina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值