如何在 DSX 中的 Scala 2.11 和 Spark 2.0 笔记本中使用 "display" 函数



在dsx中,有没有一种方法可以在带有Spark 2.0笔记本的scala 2.11中使用"display"(我知道这可以在带有pixedust的python笔记本中完成)。例如:

display(spark.sql("SELECT COUNT(zip), SUM(pop), city FROM hive_zips_table 
WHERE state = 'CA' GROUP BY city ORDER BY SUM(pop) DESC"))

但我想在scala笔记本上做同样的事情。目前,我只是在下面做一个显示命令,只提供表格格式的数据,没有图形等。

spark.sql("SELECT COUNT(zip), SUM(pop), city FROM hive_zips_table 
WHERE state = 'CA' GROUP BY city ORDER BY SUM(pop) DESC").show()

注意:

  • Pixiedust目前可与Spark 1.6和Python 2.7配合使用
  • Pixiedust目前支持Spark DataFrames、Spark GraphFrames和Pandas

参考:-https://github.com/ibm-cds-labs/pixiedust/wiki

但如果你能使用Spark 1.6,这里有一个快速的方法来使用这种奇特的显示功能:-

你可以走另一条路,因为Pixisost让你在一个带有%%scala线魔法的python笔记本中使用scala和python。

https://github.com/ibm-cds-labs/pixiedust/wiki/Using-Scala-language-within-a-Python-Notebook

步骤1.用python 2和spark 1.6创建一个笔记本安装pixidust并导入

!pip install --user --no-deps --upgrade pixiedust
import pixiedust

在下在Scala中定义变量或数据帧

%%scala
import org.apache.spark.sql._
print(sc.version)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val __df = sqlContext.read.json("people.json")
__df.show()

做任何事情来创建你的数据帧

val __df = dataframe1.sql("SELECT COUNT(zip), SUM(pop), city FROM hive_zips_table 
WHERE state = 'CA' GROUP BY city ORDER BY SUM(pop) DESC").show() 

第2步:在单独的单元格中运行以下命令访问python shell中的df变量。

display(__df)

参考我的示例笔记本:-

  • IBM笔记本电脑:https://apsportal.ibm.com/analytics/notebooks/095520cb-c9ff-4f4a-a829-f458f20b4505/view?access_token=d4de7944ad7d6bfc179632a3036a7971c130e54d1a30ecf5df34ece8c4f8c3b5
  • Github:https://github.com/charles2588/bluemixsparknotebooks/blob/master/pixiedust/PixiedustTestCase.ipynb

谢谢,查尔斯。

您可以在齐柏林中获得类似的结果

z.show(dataframe)