怎么把SparkR转换成sparklyr?

问题描述

如何将SparkDataFrame的{​​{1}}转换为SparkR的{​​{1}}?

此处提出了类似的问题:Convert spark dataframe to sparklyR table "tbl_spark"

建议使用sdf_copy_to函数,但是此函数的输入必须是R对象,而不是tbl_spark

解决此问题的建议吗?

谢谢!

解决方法

使用临时Spark表将SparkR::SparkDataFrame转换为sparklyr::tbl_spark

SparkDataFrame中的SparkR开始

df_sparkr <- SparkR::createDataFrame(data.frame(
  x = 1:10
))

在Spark中创建一个临时表

SparkR::registerTempTable(df_sparkr,"temp_df")

使用sparklyr

读取表格
sc <- sparklyr::spark_connect(master = "local")
df_sparklyr <- dplyr::tbl(sc,"temp_df")

如果数据很小,这是第二种方法。您可以转换为普通的R数据帧,然后复制到sparklyr中。如果数据帧很大,则不建议这样做。

df_normal <- SparkR::collect(df_sparkr)
df_sparklyr <- dplyr::copy_to(sc,df_normal)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...