Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

栏目: IT技术 · 发布时间: 3年前

内容简介:重磅干货,第一时间送达来源:机器之心

点击上方 蓝色小字 ,关注 涛哥聊Python

重磅干货,第一时间送达

来源:机器之心

使用类似 Jupyter Notebook 进行数据分析和机器学习是近来较为方便灵活的开发方式,但是 Jupyter Notebook 缺乏对多种语言的原生支持,在管理笔记本内的依赖、数据可视化等方面有所欠缺。近日,NetFlix 公司将其数据分析和机器学习开发工具 Polynote 开源。这一 工具 支持多语言在一个笔记本程序内运行,还增加了很多新特性,值得读者朋友尝试使用。

谈到数据科学领域的开发工具,Jupyter 无疑是非常知名的一种。它具有灵活高效的特点,非常适合进行开发、调试、分享和教学。近日,Netflix(奈飞)居然也玩起了跨界,他们开源了一个名为 Polynote 的程序。类似于 Jupyter,Polynote 可以进行开发工作,但是能够支持包括 Python 在内的多种编程语言。

据奈飞在 Medium 的文章中介绍,Polynote 开发的目的是为了给数据科学家和机器学习研究者提供一个笔记本环境,使他们能够自由且无缝地和奈飞本身基于 JVM 的机器学习平台结合。这一平台很大程度上使用的是 Scala 语言,还有一些基于 Python 的机器学习和可视化代码库。Polynote 之前已经在奈飞内部的团队中使用了,现在他们希望将其开源,以促进相关研究的发展。

Polynote 的五大特性

据介绍,Polynote 有五个特性值得关注。

支持多语言

和 Jupyter Notebook 不同,Polynote 本身支持多种语言编程。除了对 Scala 语言的一级支持,Polynote 还在一个笔记本内支持多语言运行,包括 Scala、Python、 SQL 和 Vega,而且这些语言都具备自动补全功能。

实现多语言支持的是 polyglot。它可以让用户在不同的块中写不同的代码。另外,每个代码块都会接受符合输入名的变量,并返回要求的变量给出下一段代码,不管这些代码是什么样的语言。这样可以让用户按照需要选择某种语言中最合适的工具。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

polyglot 支持多种语言一起运行。

编辑功能增强

除了和 Jupyter Notebook 一样可以在代码编辑中插入文本编辑,Polynote 可以很容易地插入 LaTex 公式。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

另外,文本编辑方面有常用的编辑功能。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

运行增强

在运行的时候,运行的代码块和代码行会显示出来,方便开发者查看运行情况。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

如图所示,Polynote 在运行时会显示当前运行的代码块和代码,以及完成某个任务需要的时间。

依赖和配置管理

Polynote 支持对笔记本的依赖和配置进行管理,这样可以避免很多运行时的问题。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

如上图所示,polynote 的配置和依赖管理界面类似于 PyCharm 等高级 IDE,可以自行改变各种依赖的版本和安装方法。和 Jupyter Notebook 不同,这些配置是不需要外部文件或集群服务器进行的。

数据可视化

Polynote 和两个非常著名的数据可视化工具进行了结合,它们分别是 Vega 和 Mataplotlib。Polynote 同时也对数据挖掘有着天然支持,这包括数据表视图、表格检查工具、图表构建工具,以及对 Vega 的支持。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

数据位置有一个按钮,可以展示图表。

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言

通过工具构建图表。

此外,Polynote 还有一些有趣的小特性,如将代码块的位置记录,使得代码库能够按照顺序运行,以保证可复现性。

安装方法

目前,Polynote 是一个 notebook 程序,因此用户可以在本地使用,或搭建网络服务。

首先,用户需要下载这一基于 JVM 的服务器应用(用来提供网络服务代理)。如果要在本地环境下使用,用户可以从开源列表中找到最新版本并下载名为「polynote-dist.tar.gz」的文件(文件可以从 Assets 文件下找到)。

tar -zxvpf polynote-dist.tar.gz
cd polynote

下载后进入目录,然后进行准备。

准备内容目前有以下一些:

  • Polynote 只在 OSX 和 Linux 进行了测试,用 Chrome 浏览器进行代理,因此作者们希望用户能够及时反馈意见;

  • 如果用户需要 Spark 支持,则需要安装 Apache Spark;

  • 用户需要使用 Python3,而不是 Python2。

还有一些其他的依赖,安装代码如下:

pip3 install jep jedi pyspark virtualenv

如果要进行配置,用户需要拷贝 config-template.yml 文件到 config.yml 文件中,并取消需要修改的配置上的注释功能。

运行时,运行以下文件(在下载的文件中):

./polynote.py

参考链接:

https://medium.com/netflix-techblog/open-sourcing-polynote-an-ide-inspired-polyglot-notebook-7f929d3f447

https://github.com/polynote/polynote

官网: https://polynote.org (https://polynote.org/)

写在最后

最后涛哥推荐下我的视频号,我从3月份开通了视频号,坚持录制 70 期左右的视频了,不说每篇干货满满, 有爬虫技术,有工具推荐,有软件开发技能 但都是原创用心输出, 有些东西公众号看不到,视频号能看到 ,一来不足以成文,二来可以看看逗比涛哥。

今天是视频号 58 /100天打卡,加油呀!

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

洞察人心

洞察人心

Steve Portigal / 张振东、蒋晓、戴传庆、孙启玉 / 电子工业出版社 / 2015-10 / 65.00元

用户在哪里,有什么需求?他们为什么会选用竞争对手的产品而不是你的?从大数据中固然能得出一些结论,但是要搞清楚作为地球上顶级复杂生物的人的真实想法,还是走近他们,面对面访谈更直接有效。 用户访谈是一项技能,与一般的交谈有本质上的区别,需要遵从一定的步骤和方法。优秀的采访者用最自然的方式和用户进行交流,看似不经意,而实际上该说什么、何时说、如何说以及什么时候应该沉默,都有精准的权衡,都试图在闲聊......一起来看看 《洞察人心》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码