r - 为什么 SparkR(在数据块上)在使用 spark 数据帧时不显示摘要函数输出?
问题描述
在数据块上,从 R 数据框开始:
x <- data.frame(n=1:1000)
现在 SparkR 汇总函数提供了很好的输出:
SparkR::summary(x)
n
分钟。: 1.0
1st Qu.: 250.8
中位数 : 500.5
Mean : 500.5
第三 Qu.: 750.2
Max. :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" attr(,"package") [1] "SparkR"
命令耗时 0.01 秒 -- @于 2020 年 9 月 9 日上午 9:47:35 在 aa_cluster_6w
不幸的是,当我尝试对其进行总结时,SparkR 库不会输出函数结果:
SparkR::summary(y)
SparkDataFrame[摘要:字符串,n:字符串]
命令耗时 0.48 秒 -- @于 2020 年 9 月 9 日上午 9:47:16 在 aa_cluster_6w
解决方案
在我写这个问题的时候,我想出了如何自己回答这个问题。所以我不妨自己记录一下答案:
Spark R 摘要函数返回一个数据框,而不是文本,因此必须将其转换为文本。两种方法如下:
display(SparkR::summary(y))
或者
SparkR::collect(SparkR::summary(y))
display 函数将 Spark Dataframes 打印为 databricks 笔记本中的良好输出。
Spark R collect 函数将 spark 数据帧拉入活动集群驱动程序上 RAM 中的本地对象中。对于包含统计摘要的微小数据帧,此操作是微不足道的。
推荐阅读
- joomla - 以编程方式删除 joomla 用户及其数据的正确方法是什么?
- typescript - Vue.js:打字稿无法识别组件中的混合数据
- javascript - 如何将 DIRECTORY 作为输入并在 HTML 和 javascript 中一一处理其中的所有文件
- azure-language-understanding - LUIS 应用程序 - 通过端点命中数获取流行意图
- node.js - 有没有办法可以在 nodejs 和 postgresql 中解决这个问题?
- symfony - VichUploader 和 LiipImagine :调整大小并保存上传的图像
- plot - 我应该如何在netlogo的“监视器”中显示程序?
- javascript - 通过节点服务器插入数据时出错
- mysql - 通过 shell 脚本连接到 mysql 数据库服务器
- javascript - Phaser 2:如何使蒙版区域不可点击