如何将 Spark R 数据帧转换为 R 列表

How to convert Spark R dataframe into R list

这是我第一次尝试 Spark R 在 Databricks Cloud Community Edition 上完成我在 RStudio 中所做的相同工作。但是遇到了一些奇怪的问题。

Spark R 似乎支持 ggplot2、plyr 等包,但数据必须是 R 列表格式。当我使用 train <- read.csv("R_basics_train.csv") 时,我可以在 R Studio 中生成这种类型的列表,变量 train 这是你使用 typeof(train).

时的列表

然而,在Spark R中,当我读取与"train"相同的csv数据时,它会被转换成dataframe,这不是我们之前使用的Spark Python DataFrame,因为我不能使用 collect() 函数将其转换为列表.... 当您使用 typeof(train) 时,它显示类型是 "S4",但实际上类型是数据帧....

那么,在 Spark R 中,我是否可以将数据帧转换为 R 列表,以便我可以使用 ggplot2、plyr 中的方法?

您可以在此处找到原始的 .csv 训练数据: train

后来我发现使用r_df <- collect(spark_df)会将Spark DataFrame转换成R dataframe,虽然不能在它的dataframe上使用R summary(),但是有了R dataframe,我们可以做很多R操作。

不确定您是否将此称为 sparkR 的缺点,但为了利用 R 必须提供的许多良好功能,例如数据探索、ggplot 库,您需要将 pyspark 数据框转换为普通数据框通过调用 collect

df <- collect(df)

看起来他们更改了 SparkR,因此您现在需要使用

r_df<-as.data.frame(spark_df)