Zeppelin Notebook%pyspark解释器与%python解释器

时间:2019-07-24 21:53:55

标签: pyspark apache-zeppelin

Zeppelin笔记本中的['thing', 'number+str(variable)'] ['thing', 'number123456'] %python有什么区别(下图)?

  • 两种情况下我都可以运行相同的python命令
  • 在两种情况下我都可以使用相同的PySpark API
    • %pysparkfrom pyspark.sql import SparkSession
  • 我什至可以来回切换;同时使用它们
    • 即第一段使用spark.read.csv,下一段使用%python
    • 没关系;每种语言都看不到另一种语言定义的变量...
    • 它们只是具有相同的(Python)API,即每个人都可以创建自己的数据框%pyspark
  • 我从下面的屏幕截图中看到,这些语言使用不同的语言 参与者
    • spark.createDataFrame([...])语言-> %python口译员
    • python语言-> %pyspark口译员

...但是,如果我的API /代码完全相同,那么使用这些解释器有什么区别?他们中的一个更快/更新/更好吗?为什么要一个使用另一个?

a zeppelin notebook settings dialog, showing 3 interpreters (spark, python, md) and in the spark interpreter a list of languages including %pyspark, and in python interpreter a list of languages including %python

1 个答案:

答案 0 :(得分:1)

运行%pyspark段落时,齐柏林飞艇将使用定义的参数(加载spark包,设置...)自动创建spark上下文(spark变量)。看一下火花解释器的documentation),了解其中的一些可能性。

%python段落中,您可以自己创建一个spark上下文,但是它不会自动完成,并且不会使用spark解释器部分中定义的参数。

这似乎还不算什么,但是齐柏林飞艇可以处理多个用户(即使目前还不完善),从管理的角度来看,这确实很方便。例如,管理员可以定义每个想要使用spark(scala,R或python)的齐柏林飞艇用户都获得相同的定义环境(执行程序,内存,某个版本的软件包数量)。仍然可以解决此限制,但是至少可以避免意外的配置差异。