Databricks 上是否有一个函数可以类似于 Spark 的 display() 以交互方式显示 R 数据框?

问题描述 投票:0回答:1

在 Databricks 上,无论是使用 Python、SQL、SparkR 还是 PySpark 创建的数据框,都可以使用

display(df)
函数很好地交互显示。但是,使用后一个函数无法显示来自基 R 的 R 数据框。我尝试使用
View
但它无法显示数据框,我只能使用
head
tail
显示它。是否有任何 Databricks 原生方法来显示 R 数据帧?

为了一个可重现的例子,我试图显示这两个数据框:

%python
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1,2,3],[4,5,6],[7,8,9]]), columns = ['a', 'b', 'c'])
display(df)
%r
df <- data.frame(a = c(1,4,7), b = c(2,5,7), c = c(3,6,9))
head(df)

附上两张截图:一张是我在Databricks上提到的功能

display
,可以交互很好地显示数据框,另一张是显示R数据框。

r apache-spark databricks
1个回答
0
投票

在做了一些研究之后,一路上我发现 R 库

data.table
在处理大型数据集方面效率更高,并且可以用来在 Databricks 中很好地打印数据框。它仍然对可以打印的数据大小有限制,小于 Python 数据框显示的限制,但它允许上下滚动并查看数据框的头部和尾部。

注意 下面的两个打印函数都可以使用基本 R 数据框和

data.table
数据框。
data.table
仅出于效率目的和/或关注而在此处提及。

# Attach data.table library after installing it -- install.packages("data.table")
# or install it through the cluster's libraries: 
library(data.table)

# Adding more data to my previous R df:
df <- data.frame(a = c(0:1200), b = seq(0, 12000, by = 10), c = seq(0, 600, by=0.5))
# Convert the base R data frame into a data.table data frame: 
dt <- setDT(df)

有趣的部分来了;显示数据框。如果数据框是

data.table
类或类型,那么
data.table
有几个显示数据框的选项:

使用 print()

print(dt)

结果:

或者,

使用 print.AsIs()

print.AsIs(dt)

结果:

后者允许您滚动浏览整个数据表,但与

display
类似,如果表格非常大,它对要显示的条目数有限制。

© www.soinside.com 2019 - 2024. All rights reserved.