Python 作为现在机器学习的必备语言,越来越受到大家的欢迎,很多人都知道可以用Jupyter notebook,却很少有人知道在Zeppelin也同样可以玩Python,而且用户体验几乎可以做到和Jupyter一致,有些方面还做的比Jupyter更出色(特别是和大数据引擎整合上)。这篇文章主要来聊聊如何在Zeppelin里玩Python。
配置Python Interpreter
Zeppelin 中的Python有2种interpreter:
- 原始Python %python
- IPython %python.ipython
原始python没有任何依赖,只要系统安装了python就可以,所以功能也最简单,我个人不推荐大家用这种方式。我会推荐大家用ipython,也是jupyter默认用的方式。在Zeppelin中用ipython,能做到和Jupyter几乎一样的用户体验。
使用IPython需要安装以下几个python包
pip install jupyter
pip install grpcio
pip install protobuf
如果你已经安装了anaconda,那么jupyter就默认安装了,只要安装剩下的两个库就可以了。所有的依赖安装完之后,你还需要在右上角的Interpreter菜单里配置Python interpreter,最重要的配置是 zeppelin.python,默认是环境变量PATH里的python,如果你系统里有多个python,那就需要指定 zeppelin.python 为你要使用的python的绝对路径。
使用Python Interpreter
使用Python interpreter非常简单,只要在每段代码前(每个paragraph前面)添加 %python 就可以。这里简单例举下几个比较重要和常用的ipython feature
彩色输出
ipython的输出是彩色,这样在notebook这种环境里就会显得更加醒目,用户体验更好。
IPython magic
很多人可能知道以%开头的代码都是ipython magic的语法糖。你同样可以在Zeppelin里适用ipython magic,如下图
Code Completion
和Jupyter notebook一样,你可以按tab来启用 code completion,如下图。
图形可视化
Python语言生态有个非常强大的领域就是各式各样的图形可视化库,大部分流行的可视化库都可以在Zeppelin中使用,而且用法和Jupyter一模一样。
比如Matplotlib
此外你还可在Zeppelin中使用seaborn, Plotnine,bokeh,holoviews,hvplot等等。具体例子可以参考Zeppelin自带的教程:Python Tutorial/2. IPython Visualization Tutorial
Dynamic forms
Zeppelin 不支持Jupyter的htmlwidget,但是有dynamic forms支持类似的功能。
用Conda来动态创建Python runtime 环境
具体参考这个教程 http://23.254.161.240/#/notebook/2G7RDR415
大数据引擎支持
Zeppelin的强大之处在与大数据引擎的整合,比如Spark,Flink。而这些大数据引擎都是Python语言的支持,上面的这些python 特性同样可以在PySpark,PyFlink中使用,后续我会另外写文章来介绍PySpark和PyFlink。
公众号 钉钉群