¿Cómo convertir de SparkR a sparklyr?

Nov 06 2020

¿Cómo convierto un SparkDataFramede SparkRen un tbl_sparkde sparklyr?

Aquí se hizo una pregunta similar: Convierta el marco de datos de Spark en la tabla SparklyR "tbl_spark" .

La sugerencia fue usar la función sdf_copy_to, sin embargo, la entrada de esta función debe ser un objeto R en lugar de un SparkDataFrame.

¿Alguna sugerencia para solucionar este problema?

¡Gracias!

Respuestas

1 Paul Nov 06 2020 at 20:22

Utilice una tabla de Spark temporal para convertir de SparkR::SparkDataFramea sparklyr::tbl_spark.

Comenzando con un SparkDataFrameenSparkR

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

Crea una tabla temporal en Spark

SparkR::registerTempTable(df_sparkr, "temp_df")

Leer la tabla usando sparklyr

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

Aquí hay un segundo método si sus datos son pequeños. Puede convertir a un marco de datos R normal y luego copiarlo en sparklyr. Esto no se recomienda si el marco de datos es grande.

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