val lines: RDD[String] = sc.textFile("/tmp/inputs/*")
val tokenizedLines = lines.map(Tokenizer.tokenize)

en el anterior fragmento de código, el acortar función puede devolver cadenas vacías. ¿Cómo me vaya agregando a la mapa, en ese caso? o eliminar entradas vacías post añadiendo al mapa?

OriginalEl autor Siva | 2014-11-05

4 Comentarios

  1. 25

    tokenizedLines.filter(_.nonEmpty)

    que hace este filtro el resultado o eliminarlos? Estoy muy interesado en la eliminación de ellos.
    El filtro devuelve una nueva colección sin cadenas vacías.
    al imprimir el símbolo (token) de las líneas de filtrado, todavía tiene cadenas vacías en la matriz de amortiguamiento. Me estoy perdiendo algo, además,?
    Como en scaladoc, los Ddr son inmutables, por lo que no se puede modificar en su lugar. Y usted debe evitar mutable estructuras de datos tanto como sea posible en la Scala. Así que usted puede escribir val tokenizedLines = lines.map(Tokenizer.tokenize).filter(_.nonEmpty).
    No te pueden quitar nada de RDD, su inmutable, la solución es correcta como se puede recolección de datos filtrados para su propósito y el uso cada vez que desee utilizar el mapa sin cadena vacía.

    OriginalEl autor asmironov

  2. 10

    Las actualmente aceptadas respuesta, utilizando filter y nonEmpty, incurre en penalización de rendimiento porque nonEmpty no es un método en String, pero, en cambio, es añadido a través de la conversión implícita. Con objetos de valor que se utiliza, espero que la diferencia a ser casi imperceptible, pero en las versiones de la Scala, donde se que no es el caso, se trata de un enorme éxito.

    Lugar, uno podría usar este, que está seguro de ser más rápido:

    tokenizedLines.filterNot(_.isEmpty)

    OriginalEl autor Daniel C. Sobral

  3. 1

    Usted podría utilizar flatMap con Option.

    Algo así como que:

    lines.flatMap{
         case "" => None 
         case s => Some(s)
    }
    No puedo utilizar flatmap por algunas razones..
    líneas de ujo.flatMap{case «» => Nil caso s => Seq(s)} así ?

    OriginalEl autor crak

  4. 0
    val tokenizedLines = (lines.map(Tokenizer.tokenize)).filter(_.nonEmpty)

    OriginalEl autor user1989252

Dejar respuesta

Please enter your comment!
Please enter your name here