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.

Cómo utilizar strsplit en SparkDataFrame

Estoy dando mis primeros pasos en el mundo de Azure Databricks y, por lo tanto, tengo que aprender cómo usar SparkR.

[Vengo de data.table]

Aunque he leído mucha documentación, creo que algo se me escapa en SparkDataFrame.

Para crear una nueva columna, aprendí que podemos hacer algo como:

sdf$new <- sdf$old * 0.5

Pero si quiero usar una función básica, obtengo un error y no puedo entender por qué:

sdf <- sql("select * from base_datos.tabla")
sdf$new <- strsplit(sdf$old, "-")[1]</p>

<p>Error en strsplit((sdf$old), "-") :
  argumento no es de tipo caracter
Algo(<code> Error en strsplit((sdf$old), "-"): argumento no es de tipo caracter </code>)

¿Qué me falta?

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el mensaje de error indica que la función strsplit está esperando un argumento de tipo caracter, pero en su lugar está recibiendo otra cosa. Esto podría deberse a varias razones, como que la columna old no sea de tipo caracter, o que la columna tenga algunos valores que faltan. Una forma de comprobar esto es utilizar las funciones class() y is.na() para inspeccionar la columna, por ejemplo:

    class(sdf$old)
    is.na(sdf$old)
    

    Si la columna no es de tipo caracter, podrías tratar de convertirla utilizando la función as.character(), como esto:

    sdf$old <- as.character(sdf$old)
    

    Si hay valores que faltan, podrías reemplazarlos con algo como una cadena vacía, como esto:

    sdf$old[is.na(sdf$old)] <- ""
    

    Una vez que hayas solucionado cualquier problema con la columna old, deberías poder utilizar strsplit para crear una nueva columna basada en ella.

Comments are closed.