【问题标题】:How to convert Spark R dataframe into R list如何将 Spark R 数据帧转换为 R 列表
【发布时间】:2016-08-14 00:58:17
【问题描述】:

这是我第一次在 Databricks Cloud Community Edition 上尝试使用 Spark R 来完成与 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

【问题讨论】:

  • 你能告诉我们dput(train)是什么吗?
  • 我将 .csv 训练数据放在我的 GitHub 中:github.com/hanhanwu/Hanhan_Data_Science_Practice/blob/master/…
  • 或者如果 train 很大并且 head 可以工作,则执行 dput(head(train))
  • head 不是数据探索的好选择。使用 R Studio 时,很容易判断缺失数据在哪里,以及每列的详细摘要。但我没有发现 Spark R 可以做到这些。 head() 也无济于事...
  • dput(head(train)) 在这里可能很好。我知道一些关于 S4 对象的知识,但我需要一个可以使用的示例,然后才能向您展示如何转换。

标签: r csv dataframe rstudio sparkr


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    df <- collect(df)
    

    【讨论】:

      【解决方案3】:

      看起来他们改变了 SparkR,所以你现在需要使用

      r_df<-as.data.frame(spark_df)
      

      【讨论】:

        猜你喜欢
        • 2019-01-16
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-21
        • 2020-02-29
        • 1970-01-01
        相关资源
        最近更新 更多