在 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 库
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
类似,如果表格非常大,它对要显示的条目数有限制。