Apache Zeppelin动态表单功能详解

Apache Zeppelin动态表单功能详解

zeppelin Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. zeppelin 项目地址: https://gitcode.com/gh_mirrors/zeppelin1/zeppelin

什么是动态表单

Apache Zeppelin提供了一个强大的动态表单功能,允许用户在Notebook中创建交互式输入控件。这些表单可以基于不同的后端语言以两种方式创建:通过模板语法或编程API。动态表单极大地增强了数据分析的交互性和灵活性。

表单作用域

Zeppelin中的动态表单有两种作用域:

  1. 段落作用域(Paragraph Scope):仅在当前段落有效
  2. 笔记作用域(Note Scope):在整个笔记文档的所有段落中都有效

使用模板语法创建表单

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

文本输入框

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

请输入您的姓名:${name}

设置默认值:

请输入您的姓名:${name=John}

密码输入框

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

请输入密码:${password:pass}

下拉选择框

基本语法:

选择星期:${day=1,mon|tue|wed|thurs|fri|sat|sun}

设置显示名称与值分离:

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

复选框

多选语法:

选择水果:${checkbox:fruits=apple|banana,apple|banana|orange}

自定义分隔符:

选择水果:${checkbox(:):fruits=apple:banana,apple:banana:orange}

自动执行控制

默认情况下,修改选择后会立即执行段落。如需禁用此功能:

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

笔记作用域表单

语法与段落作用域相同,但使用双$符号开头:

$${globalInput}

编程方式创建表单

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

Scala示例

// 文本输入框
println("Hello "+z.textbox("name"))

// 带默认值的文本输入框
println("Hello "+z.textbox("name", "sun"))

// 密码框
println("Password is "+ z.password("my_password"))

// 下拉框
println("Hello "+z.select("day", Seq(("1","mon"), ("2","tue"), ...)))

// 复选框
val options = Seq(("apple","Apple"), ("banana","Banana"), ("orange","Orange"))
println("Hello "+z.checkbox("fruit", options).mkString(" and "))

Python示例

# 文本输入框
print("Hello "+z.textbox("name"))

# 带默认值的文本输入框
print("Hello "+z.textbox("name", "sun"))

# 密码框
print("Password is "+ z.password("my_password"))

# 下拉框
print("Hello "+z.select("day", [("1","mon"), ("2","tue"), ...]))

# 复选框
options = [("apple","Apple"), ("banana","Banana"), ("orange","Orange")]
print("Hello "+ " and ".join(z.checkbox("fruit", options, ["apple"])))

笔记作用域的编程API

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

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

实际应用建议

  1. 简单交互:优先使用模板语法,简单直观
  2. 复杂逻辑:使用编程API,灵活性更高
  3. 全局参数:考虑使用笔记作用域表单
  4. 性能考虑:避免在循环中创建大量表单
  5. 用户体验:合理设置默认值和选项描述

动态表单是Apache Zeppelin提升交互式数据分析体验的重要功能,合理运用可以显著提高工作效率和分析灵活性。

zeppelin Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. zeppelin 项目地址: https://gitcode.com/gh_mirrors/zeppelin1/zeppelin

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

邱弛安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值