Scala es un lenguaje de programación de propósito general dirigido principalmente a la máquina virtual Java. Diseñado para expresar patrones de programación comunes de una manera concisa, elegante y segura de tipos, fusiona estilos de programación imperativos y funcionales. Sus características clave son: un sistema de tipo estático avanzado con inferencia de tipo; tipos de funciones; la coincidencia de patrones; parámetros implícitos y conversiones; sobrecarga del operador; interoperabilidad total con Java; concurrencia

scala...

Tengo la siguiente trama de datos val input = Seq(("ZZ","a","a","b","b"), ("ZZ","a","b","c","d"), ("YY","b","e",null,"f"), ("YY","b","b",null,"f"), ("XX","j","i","h",null)) .toDF("main","value1","value2","value3","value4") input.show() +----+------+------+------+------+ |main|value1|value2|value3|v....
23 ago. 2020 a las 17:09
¿Existe una forma estándar de completar una función parcial PartialFunction[A, B]? Algo como esto: completePartialFunction(pf: PartialFunction[A, B], z: B): A => B O más genéricamente completePartialFunction2(pf: PartialFunction[A, B], f: A => B): A => B ....
18 ago. 2020 a las 10:06
Digamos que tenemos dos clases de casos Woof y Meow case class Meow(a: String, b: String) case class Woof(a: String, b: String) Y nos gustaría crear una función foo que concatene a con by funcione genéricamente (tipo de) para ambos / ya sea Woof & Meow como: def foo[T](meowOrWoof: T) = meowOrWoof.a....
16 ago. 2020 a las 11:18
Supongamos que tengo un rasgo que se parece a esto trait MyTrait { val x: Option[String] = None val y: Option[String] = None } Después de definir el rasgo, extiendo este rasgo a una clase MyClass que se parece a esto case class MyClass( override val x: Option[String] = None, override val y....
10 ago. 2020 a las 12:33
Digamos que tengo los siguientes rasgos y clases: trait A { def foo(): Unit } trait B extends A { abstract override def foo(): Unit = { // Can I determine the name of the concrete class here? super.foo() } } class C extends A { def foo() = { println("C::foo(....
9 ago. 2020 a las 15:34
Estoy tratando de hacer coincidir todos los operadores binarios en una sola cláusula case, pero el siguiente código da el error: object BinOp is not a case class, nor does it have a valid unapply/unapplySeq member Note: def unapply(a: AST.this.Expr, b: AST.this.Expr): Option[(AST.this.Expr, AST.this....
En Scala, dado un tipo genérico T, ¿cómo recuperar la lista de nombres de campo y los tipos de campo? Por ejemplo, si tengo la clase de caso: case class Person(name: String, age: Int, gender: Boolean) Y la función genérica: def getFieldNamesAndTypes[T](): Seq[(String, String)] Me gustaría poder re....
7 ago. 2020 a las 12:24
Tengo dos matrices, límite superior e inferior. val solution : Array[Double] = Array(1.0, 33.0, 31.0, 82.0, 51.0, 25.0, 39.0, 96.0, 95.0, 49.0) val original : Array[Double] = Array(3.0, 45.0, 18.0, 25.0, 99.0, 6.0, 36.0, 61.0, 82.0, 62.0) val lower = 30 val upper = 90 La matriz de tipo booleano se ....
Tengo un código Scala similar al código siguiente. Hay una definición implícita en el nivel de clase / objeto y quiero 'anularla' con una definida implícita en el método. (Si realmente necesita saberlo, necesito cambiar mi ExecutionContext especialmente para el método en cuestión). En este ejemplo, ....
6 ago. 2020 a las 14:21
Tengo una JSON que se parece a: { "data": [ { "id": "1", "email": "hello@world.com", "name": "Mr foo", "roles": [ "Chief Bar Officer" ], "avatar_url": null, "phone_number": null }, { "id": "2", "email": "bye@world.com", ....
6 ago. 2020 a las 13:11
A menudo me encuentro en la necesidad de encadenar collects donde quiero hacer múltiples recolecciones en un solo recorrido. También me gustaría devolver un "resto" para las cosas que no coincidan con ninguna de las colecciones. Por ejemplo: sealed trait Animal case class Cat(name: String) extends A....
6 ago. 2020 a las 03:32
Estoy trabajando en el tutorial / explicación de fastparse y recibo el mensaje de error. error: No implicit view available from fastparse.P[Any] => fastparse.P[Unit] Para el ejemplo de secuencia. Estoy usando sbt 1.3.8 y scala 2.13.1. La versión definida para fastparse es 2.2.2. scala> import fastp....
5 ago. 2020 a las 20:24
Soy un novato de Scala y una cosa que encuentro muy extraña es el error ";" o se espera una nueva línea Por ejemplo, la definición de la clase Point en Tour de scala sección Miembros privados y sintaxis Getter / Setter si escribo el código así def x_ = (newValue : Int): Unit = {} Conseguiré el ; ....
5 ago. 2020 a las 14:37
Estoy tratando de definir un esquema para mi json en Spark. Tengo este error: org.apache.spark.sql.AnalysisException: no se puede resolver Columnas de entrada dadas 'sport_details': [user_agent, modified_at, datamatrix_content, player_id, created_by, device_advertisers_id, device_type, betslips, cre....
5 ago. 2020 a las 12:06
Tengo el siguiente código: case class Foo[+CC[A] <: Iterable[A]](foo: CC[Int]) def customReduce[CC1[A] <: Iterable[A], CC2[A] <: Iterable[A]](foos: CC1[Foo[CC2]]): Foo[CC1] = Foo(foos.flatMap(_.foo)) println(customReduce(Seq(Foo(Seq(1))))) Foo es un tipo que acepta cualquier tipo de....
5 ago. 2020 a las 00:11
Considera este ejemplo for(x <- 0 until numberOfHWBlocks){ val hw_block = Module(new HW_BLOCK(x)(p :Parameters)).io } Cada vez que esto crea un nuevo módulo de acuerdo con lo que sea x. Lo que quiero es que no quiero declarar val hw_block cada vez como una entidad separada dentro del ciclo for....
4 ago. 2020 a las 03:50
¿Alguien podría sugerir una forma eficiente y concisa de realizar la siguiente característica de "eliminar al leer"? Es decir, cuando se lee el atributo _events, se borra. case class Event(nanos: Long) case class History() { private val _events = ArrayBuffer[Event]() def add(event: Event): Unit....
3 ago. 2020 a las 21:29
Tengo columnas duplicadas en el archivo de texto y cuando intento cargar ese archivo de texto usando el código Spark Scala, se carga correctamente en el marco de datos y puedo ver las primeras 20 filas por df.Show () Código completo: - val sc = new SparkContext(conf) val hivesql = new org.apache.s....
3 ago. 2020 a las 14:05
He estado jugando con las expresiones y me encontré lidiando con un resultado inesperado. Es mejor que lo ilustre con un ejemplo: val someList = List(2.2, 3.4) val strangeDoubles = for { s <- someList.toString.replace(".", "") } yield s.toDouble println(strangeDoubles) // result: Ar....
2 ago. 2020 a las 21:40
Repetidamente me encuentro escribiendo algo similar a esto: c match { case c if lengthyEvaluation1(c) > 0 => lengthyEvaluation1(c).toString case c if lengthyEvaluation2(c) > 0 => lengthyEvaluation2(c).toString } Donde lengthyEvaluation1 y lengthyEvaluation2 son funciones que tienen un tiempo de....
31 jul. 2020 a las 10:48
Dada val ss = List((1, 2, "r"), (2, 2, "r"), (1, 4, "r"), (1, 5, "p"), (1, 6, "s")) Entonces val pp = ss.toArray.groupBy(_._2).toSeq.sortBy(_._1).toList.map(f => { f._2.map { case (x, y, z) => if (z == "r") { // when z == "s" || z =="p" empty bracket will be added s"$x,$y,$z" } else....
30 jul. 2020 a las 17:24
Quiero entender por qué el compilador de Scala emite un error para el siguiente fragmento: import scala.collection.mutable class X[+A, +C] { val x = mutable.Map.empty[Int, mutable.Builder[A, C]] } La salida de error: <console>:13: error: covariant type A occurs in invariant position in type => s....
30 jul. 2020 a las 09:12
Tengo una fuente de datos, alrededor de 100 GB, y estoy tratando de escribirla particionada usando una columna de fecha. Para evitar pequeños fragmentos dentro de las particiones, agregué una partición (5) para tener un máximo de 5 archivos dentro de cada partición: df.repartition(5).write.orc("path....
29 jul. 2020 a las 19:06
Estoy escribiendo un código que usa la coincidencia de patrones. En las pruebas encontré un resultado extraño: object Example extends App { trait Human { def sing(): Unit } case class Son(name: String) extends Human { override def sing(): Unit = println("son " + name) } case cla....
29 jul. 2020 a las 17:04
Tengo esta cadena JSON que proviene de un tema de Kafka {"id": 12345, "items": {"unit17": 0, "unit74": 0, "unit42": 0, "unit96": 0, "unit13": 0, "unit16": 0, "unit11": 0, "z10": 0, "z0": 1}} Al usar spray-json (versión 1.3.5), quiero analizarlo, así que hago: val parsedStream = stream.map( even....
29 jul. 2020 a las 13:03