将SparkR DataFrame转换为H2O帧

时间:2017-10-18 16:56:09

标签: r h2o sparkr

使用SparkR,我想知道是否可以将Spark DataFrame转换为H2O帧?

我已经看到了将R sparklyr转换为h2o帧的示例,但遗憾的是,这不是一个可行的选项(数据大小)。

我知道可以使用rsparklingsparklyr来创建h2o框架,但我没有使用HIVE或Hadoop,rsparklingsdf。< / p>

相反,我的目标是转换set.seed(123) df<- data.frame(ColA=rep(c("dog", "cat", "fish", "shark"), 4), ColB=rnorm(16), ColC=rep(seq(1:8),2)) sdf<- SparkR::createDataFrame(df)

as.h2o(sdf, destination_frame = "hsdf") # fails, came from Spark (SparkR)
as.h2o(df, destination_frame = "hdf") # succeeds, but this is a regular R data.frame

进入这个:

firebase_screen_class

希望有人找到了一种方法,可以使用SparkR提供的方法。我认为这对R用户来说是一个巨大的好处。

2 个答案:

答案 0 :(得分:1)

不支持在 h2o SparkR 包中本地转换H2O和Spark框架。您必须使用 rsparkling (取决于 sparklyr )或从Spark DataFrame进行转换 - &gt; R data.frame - &gt; H2O框架。

您提到Hadoop和HIVE ......只是为了澄清,这些都不是使用rsparkling::as_h2o_frame()的要求。

答案 1 :(得分:0)

由于上述方法都不适合我,因此解决方案是:

  1. 将spark数据帧保存在csv(csv文件夹)上

  2. 使用Apply函数使用软件包Rio Import打开每个csv文件

    tmp <-lapply(list.files(“ data / csvfolder.csv”),function(x){rio :: import(paste0(“ data / csvfolder.csv /”,x))}) df00 <-do.call(“ rbind”,tmp)

  3. 使用“ df00”作为数据框以按需使用,

希望对你们有用!收集和as.data.frame太弱,取决于所使用的数据类型。

欢呼声