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

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

Polynote 的五大特性

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

支持多语言

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

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

编辑功能增强

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

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

运行增强

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

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

依赖和配置管理

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

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

数据可视化

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

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

安装方法

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

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

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

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

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

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

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

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

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

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

在这里我主要是想表达我们一定要边看源码,边通过图例记录下来,深入理解,对你学习很有帮助的。写到这里,感谢阅读!

给大家分享一个学习群 笔试面试题以及python的进阶学习资料都更新在群里 欢迎大家一起来学习

点击这里加入该群学习

 

Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言的更多相关文章

  1. 在jupyter notebook中运行R语言

    要想在jupyter notebook中运行R语言其实非常简单,按顺序安装下面扩展包即可: install.package('repr','IRdisplay','evaluate','crayon' ...

  2. 【云计算】Netflix 开源持续交付平台 Spinnaker

    oschina        发布于: 2015年11月19日 (0评)          分享到:    收藏 +1 CDS首都在线全球云主机.全球私有网络,开工送礼,免费试用! »   日前,Ne ...

  3. 新 Netflix 开源门户

    Netflix 开源改革计划:新 Netflix 开源门户 http://www.oschina.net/news/67555/evolution-of-open-source-at-netflix ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_5-02 Netflix开源组件断路器

    笔记 2.Netflix开源组件断路器Hystrix介绍     简介:介绍Hystrix基础知识和使用场景          文档地址:         https://github.com/Net ...

  5. 开源一个跨平台运行的服务插件 - TaskCore.MainForm

    本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.Main ...

  6. 分享:写了一个 java 调用 C语言 开发的动态库的范例

    分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h   代码#pragma once#ifdef __cplusplusextern "C" {#e ...

  7. 给一个正在运行的Docker容器动态添加Volume

    给一个正在运行的Docker容器动态添加Volume本文转自:http://dockone.io/article/149 [编者的话]之前有人问我Docker容器启动之后还能否再挂载卷,考虑到mnt命 ...

  8. 高效快捷解决一个TextView显示多种字体的控件SpannableTextView

    这个控件本人强烈推荐,它会使得布局非常的简单且高效: 下面这个布局如果是你,你会用多少层?多少控件生成? 告诉你吧,一个SpannableTextView控件就搞定了! 它把TextView和Span ...

  9. 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)

    综合研究:      在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想).同时使我们:          (1)认识到汇编语言对于深入理解其他领域知识的 ...

随机推荐

  1. 手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP)

    wechat github 手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP) 概述 公众号开发是痛苦的,痛苦在好多问题开发者文档是没有提到的,是需要你猜的. 在开发过程中 ...

  2. Redux的核心概念,实现代码与应用示例

    Redux是一种JavaScript的状态管理容器,是一个独立的状态管理库,可配合其它框架使用,比如React.引入Redux主要为了使JavaScript中数据管理的方便,易追踪,避免在大型的Jav ...

  3. vue 请求图片方法

    node的每一个文件,都是一个域,那么里面所有的变量都不允许被外界引用,除非导出.要使用外界的变量,也必须使用导入的方式来导入.import 文件路径. css可以直接使用import +文件路径导入 ...

  4. 消息中间件-RabbitMQ环境搭建

    一直在传统行业工作(早九晚五不加班),没有考虑消息中间件的性能,所以一直再用activeMQ也没有想过学习别的中间件,时间长也没什么技术上的进步,而且感觉到了 工作的麻木,所以决定学一些新的技术(其实 ...

  5. ofd电子文档内容分析工具(分析文档、签章和证书)

    前言 ofd是国家文档标准,其对标的文档格式是pdf.ofd文档是容器格式文件,ofd其实就是压缩包.将ofd文件后缀改为.zip,解压后可看到文件包含的内容. ofd文件分析工具下载:点我下载.获取 ...

  6. Tomcat因项目迁移,启动窗口一闪而过,启动失败的解决办法。

    笔者手动部署一个web项目到Tomcat/webapps/目录下,成功运行.后来,项目结束,我把webapps下的姓项目文件夹删除.重启Tomcat时,运行...\apache-tomcat-8.5. ...

  7. Java面试官最爱问的volatile关键字

    在Java的面试当中,面试官最爱问的就是volatile关键字相关的问题.经过多次面试之后,你是否思考过,为什么他们那么爱问volatile关键字相关的问题?而对于你,如果作为面试官,是否也会考虑采用 ...

  8. 关于mimikatz lazagne免杀方法

    其实现在的杀软还是玩的老一套,改改特征字符就能过了,最新的defender能用这个方法过 文章直接从笔记复制出来的,有需要的自己看情况用 git clone https://github.com/ge ...

  9. MySQL 语句执行过程详解

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  10. Linux JDK 安装与配置

    一.下载 JDK 官网链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 系 ...