为什么 SparkR(在数据块上)在使用 spark 数据帧时不显示摘要函数输出?

Why does SparkR (on databricks) not display summary function output when working with spark dataframes?

在数据块上,从 R 数据帧开始:

x <- data.frame(n=1:1000)

现在 SparkR 汇总函数提供了不错的输出:

SparkR::summary(x)
   n         

分钟。 : 1.0
第一区:250.8
中位数:500.5
平均值:500.5
第三题:750.2
最大限度。 :1000.0

命令耗时 0.02 秒——@ 于 2020 年 9 月 9 日,9:46:57 上午 aa_cluster_6w

接下来我会将 R 数据帧转换为 spark 数据帧:

y <- SparkR::createDataFrame(x=x)

我能够确认对象 y 确实是一个 Spark Dataframe:

class(y)

[1] "SparkDataFrame" 属性(“包”) [1] "SparkR"

命令耗时 0.01 秒——@ 于 2020 年 9 月 9 日,9:47:35 上午 aa_cluster_6w

不幸的是,当我尝试总结时,SparkR 库没有输出函数结果:

SparkR::summary(y)

SparkDataFrame[摘要:字符串,n:string]

命令耗时 0.48 秒——@ 于 2020 年 9 月 9 日,9:47:16 上午 aa_cluster_6w

我在写问题的时候自己想出了如何回答这个问题。所以我还不如自己记录下答案:

Spark R 汇总函数returns 数据框,不是文本,因此必须将其转换为文本。两种方法如下:

display(SparkR::summary(y))

SparkR::collect(SparkR::summary(y))

显示函数将 Spark Dataframes 打印为数据块笔记本中的良好输出。

Spark R collect 函数将 spark 数据帧拉入活动集群驱动程序上 RAM 中的本地对象。此操作对于包含统计摘要的微型数据帧来说是微不足道的。