es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La asignación de un objeto de clase NULL no es válida para @sdf en R.

Estoy obteniendo el siguiente error al ejecutar este código en Databricks:

Soy nuevo en R y Spark. ¿Alguien podría ayudarme, por favor?

%r
sql("REFRESH TABLE view_for_R")
p <- sql("SELECT * FROM view_for_R")
p <- as.data.frame(p)

Error in (function (cl, name, valueClass) :
la asignación de un objeto de clase “NULL” no es válida para @’sdf’ en un objeto de clase “SparkDataFrame”; is(value, “jobj”) no es VERDADERO
Some( Error in (function (cl, name, valueClass) : la asignación de un objeto de clase "NULL" no es válida para @'sdf' en un objeto de clase "SparkDataFrame"; is(value, "jobj") no es VERDADERO )
Error in (function (cl, name, valueClass) : la asignación de un objeto de clase “NULL” no es válida para @’sdf’ en un objeto de clase “SparkDataFrame”; is(value, “jobj”) no es VERDADERO

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que hay un problema con la asignación del dataframe que se consultó desde la tabla “view_for_R”. El mensaje de error sugiere que el objeto que se está asignando podría ser de clase “NULL”, lo cual no es compatible con la clase “SparkDataFrame”.

    Una posible solución podría ser verificar si la tabla “view_for_R” existe en la base de datos actual o si se ha registrado adecuadamente como una vista temporal. También sería útil verificar si la conexión al clúster de Spark a través de databricks está funcionando correctamente.

    Otra opción podría ser intentar usar el paquete SparkR en lugar de la función sql para consultar la tabla y luego convertirla en un dataframe. Por ejemplo:

    # Cargar las bibliotecas necesarias y crear el contexto de Spark
    library(SparkR)
    sc <- sparkR.init()
    
    # Consultar la tabla "view_for_R" usando comandos SparkR
    view_for_R <- sparkR.table("view_for_R")
    p <- collect(view_for_R)
    
    # Convertir el dataframe de Spark en un dataframe regular
    p <- as.data.frame(p)
    

    Este enfoque alternativo podría proporcionar un mayor control sobre el proceso de transformación de datos y potencialmente evitar cualquier problema de compatibilidad entre las clases del dataframe de Spark y el dataframe de R.

Comments are closed.