为什么使用Spark数据帧时SparkR在数据块上不显示函数输出?

问题描述

在数据块上,从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秒-由 @ 在9/9/2020,9:46:57 AM在aa_cluster_6w上

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

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

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

class(y)

[1]“ SparkDataFrame” attr(,“包裹”) [1]“ SparkR”

命令花费了0.01秒-由 @ 在9/9/2020,9:47:35 AM在aa_cluster_6w上

不幸的是,当我尝试对其进行汇总时,SparkR库不会输出函数结果:

SparkR::summary(y)

SparkDataFrame [summary:string,n:string]

命令花费了0.48秒-由 @ 在2020年9月9日上午9:47:16在aa_cluster_6w上

解决方法

我在写问题时想出了如何回答问题。因此,我最好自己记录下答案:

Spark R摘要功能返回一个数据框,而不是文本,因此必须将其转换为文本。做到这一点的两种方法如下:

display(SparkR::summary(y))

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

显示功能将Spark数据帧打印为databricks笔记本中的精美输出。

Spark R收集功能将一个Spark数据帧拉入活动集群驱动程序的RAM中的本地对象中。对于包含统计摘要的小型数据框,此操作是微不足道的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...