El Uso De Chispa 2.1.1

A continuación es mi marco de datos

id Name1   Name2

1 Naveen Srikanth 

2 Naveen Srikanth123

3 Naveen 

4 Srikanth Naveen

Ahora es necesario filtrar las filas basa en dos condiciones que es de 2 y 3 deben ser filtrados como nombre el número del 123 y 3 tiene valor null

usando el siguiente código para filtrar sólo el id de fila 2

df.select("*").filter(df["Name2"].rlike("[0-9]")).show()

se quedó atascado hasta incluir segunda condición.

InformationsquelleAutor user3292373 | 2017-08-23

2 Comentarios

  1. 4

    haciendo lo siguiente debería resolver su problema

    from pyspark.sql.functions import col
    df.filter((!col("Name2").rlike("[0-9]")) | (col("Name2").isNotNull))
    • Para pyspark también la sintaxis es la misma ? como estoy usando pyspark no scala
    • se utiliza en pyspark como de pyspark.sql.funciones de importación * y un fragmento que fue dado Ramesh no funciona. También el código que te han dado sólo funciona para 123 pero lo necesita para cualquier numérico número que está entre [0-9]
    • Debería haber sido un && como en mi ejemplo.
    • actualizado mi respuesta 🙂
    • Gracias Ramesh . Lo que dijo era correcto pero tengo la respuesta con un código similar de los suyos dado df.seleccione(«*»).filtro(~df[«Nombre2»].rlike(«[0-9]»))
    • Muy útil para ver la importación col declaración…otras respuestas no incluyen este!

  2. 0

    Debe ser tan simple como un poner varias condiciones en el filtro.

    val df = List(
      ("Naveen", "Srikanth"), 
      ("Naveen", "Srikanth123"), 
      ("Naveen", null), 
      ("Srikanth", "Naveen")).toDF("Name1", "Name2")
    
    import spark.sqlContext.implicits._  
    df.filter(!$"Name2".isNull && !$"Name2".rlike("[0-9]")).show

    o si usted prefiere no utilizar chispa-sql $:

    df.filter(!df("Name2").isNull && !df("Name2").rlike("[0-9]")).show 

    o en Python:

    df.filter(df["Name2"].isNotNull() & ~df["Name2"].rlike("[0-9]")).show()
    • Llegar chispa.sqlContext.implicits._ no se encontró Michel y llegar inválida operador && e !$ no permitir el uso de
    • Esta importación es para ‘$’ y funciona como un encanto en la scala REPL como acabo de prueba. Cuando usted está en un spark proyecto, se puede importar en un ámbito que tiene acceso a la chispa de la variable de sesión (org.apache.chispa.sql.SparkSession).
    • Ya no está funcionando como estoy usando pyspark pero la sintaxis es en la scala. no utilizar scala. mi entorno es cloudera proj env
    • quizá no debería haber marcado el post [scala] entonces.. supuse que estaban familiarizados con los dos envs.

Dejar respuesta

Please enter your comment!
Please enter your name here