Crear listas
Ejemplos donde se definen las listas a utilizar en el resto de los apartados del post
val list1 = 1::2::3::4::5::Nil
val list2 = List(1,2,3,4,5)
val list3 = List.range(1,6)
val list4 = List.range(1,6,2)
val list5 = List.fill(5)(1)
val list6 = List("Paco","Andres","Sonia","Maria")
val list7 = List.tabulate(5)(n => n * n)list1: List[Int] = List(1, 2, 3, 4, 5) list2: List[Int] = List(1, 2, 3, 4, 5) list3: List[Int] = List(1, 2, 3, 4, 5) list4: List[Int] = List(1, 3, 5) list5: List[Int] = List(1, 1, 1, 1, 1) list6: List[String] = List(Paco, Andres, Sonia, Maria) list7: List[Int] = List(0, 1, 4, 9, 16)
Transformar columna de dataframe en lista
val df = Seq(
("uno", 2.0),
("dos", 1.5),
("tres", 8.0)
).toDF("id", "valor")
val lista = df.select("id").map(r => r.getString(0)).collect.toList
listares: List[String] = List(uno, dos, tres)
Operaciones con listas
Foreach – Sumar elementos
var sum = 0 list1.foreach(sum += _)
sum: Int = 15
For – Visualizar elementos
for (name <- list6) println(name)
Paco Andres Sonia Maria
For – Visualizar elementos con restricciones
for (name <- list6 if name.startsWith("A")){
println(name)
}Andres
Añadir elementos a una lista
val list_total = "Julia" :: list6
list_total: List[String] = List(Julia, Paco, Andres, Sonia, Maria)
Unir listas
val list_total1 = List.concat(list1, list2) val list_total2 = list1 ++ list2 val list_total3 = list1 ::: list2
list_total1: List[Int] = List(1, 2, 3, 4, 5, 1, 2, 3, 4, 5) list_total2: List[Int] = List(1, 2, 3, 4, 5, 1, 2, 3, 4, 5) list_total3: List[Int] = List(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
Aplanar listas
List(List(1), List(2), List(3)).flatten
res: List[Int] = List(1, 2, 3)
Filtros sobre listas
Filtros simples
list1.filter( _ > 2 ) list1.filter( _ % 2 == 0)
res1: List[Int] = List(3, 4, 5) res2: List[Int] = List(2, 4)
Filtros sobre Clases
case class Persona(nombre: String, apellido: String, edad: Integer, salario: Integer)
val persona1 = Persona("Paco","Garcia",24,24000)
val persona2 = Persona("Juan","Garcia",26,27000)
val persona3 = Persona("Lola","Martin",29,31000)
val persona4 = Persona("Sara","Garcia",35,34000)
val personas = List(persona1,persona2,persona3,persona4)
personas.filter(_.apellido == "Garcia")
.filter(_.edad > 25)
.map(_.nombre)res: List[String] = List(Juan, Sara)





Buenos días, en el ejemplo de transformar me genera error de semicolon (;) y valores no validos en seq