3

在 dsx 中有一种方法可以在带有 Spark 2.0 笔记本的 scala 2.11 中使用“显示”(我知道它可以在带有 pixiedust 的 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()
4

2 回答 2

3

笔记:

  • Pixiedust 目前适用于 Spark 1.6 和 Python 2.7。
  • Pixiedust 目前支持 Spark DataFrames、Spark GraphFrames 和 Pandas

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

但是如果你可以使用 Spark 1.6,这里有一个快速的方法来使用这个花哨的显示功能:-

你可以反过来,因为 Pixidust 让你在一个带有 %%scala 线魔法的 python 笔记本中使用 scala 和 python。

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

Step 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)

参考我的示例笔记本:-

谢谢,查尔斯。

于 2017-01-27T22:45:40.187 回答
1

您可以在 Zeppelin 中获得类似的结果

z.show(dataframe)
于 2018-03-28T13:05:58.830 回答