Polynote是一个新的多语言笔记本,具有一流的Scala支持、Apache Spark集成,包括Scala、Python和SQL在内的多语言操作性,以及键入时自动完成等功能。
最近,Netflix宣布开源Polynote,该笔记本环境给数据科学家和机器学习研究人员提供了一个机会,允许他们自由地无缝整合基于JVM的机器学习平台(该平台大量使用Scala)和Python生态系统内的主流机器学习和可视化库。目前,该项目已经得到Netflix的个性化及推荐团队的广泛采用,现在正在研究与平台的其他部分进行集成。
功能特性
可重复性
Polynote的两大指导原则是可重复性和可见性。为了进一步实现这些目标,Netflix最早的设计决策之一是从头构建Polynote的代码解释,而不是像传统笔记本一样依赖REPL。Netflix觉得,尽管REPL总体上很好,但是根本不适合笔记本模式。为了理解REPL和笔记本的问题,可以看一个典型的笔记本环境设计。
笔记本是有序的单元格集合,每个单元格都可以存放代码或文本。每个单元格的内容可以独立修改和执行。单元格可重新安排、插入及删除,这也取决于笔记本中其他单元的输出。把这个与REPL环境进行比较会发现,在REPL会话中,用户把表达式一次一个地输入提示符。一旦求完值,表达式和其求值的结果不可变,求值结果被附加到全局状态提供给下个表达式。