Sparkathon - Developing Spark Structured Streaming Apps in Scala
- Multiple
groupByorgroupByKeyaggregations in a batch structured query
Sparkathon - Developing Spark Structured Streaming Apps in Scala
groupBy or groupByKey aggregations in a batch structured query| import cats.data.State | |
| import freestyle.tagless._ | |
| /* domain objects */ | |
| sealed trait Acme | |
| object Acme { | |
| case object AcmeUK extends Acme | |
| case object AcmeUS extends Acme | |
| } |
| import cats.data.State | |
| import freestyle.free._ | |
| /* domain objects */ | |
| case class Id(id: String) | |
| case class AcmeItem(id: Id) | |
| /* state */ | |
| trait MapState[K, V] { |
| import cats.data.State | |
| import freestyle.free._ | |
| /* domain objects */ | |
| case class Id(id: String) | |
| case class AcmeItem(id: Id) | |
| /* state */ | |
| trait MapState[K, V] { |
| import cats.data.State | |
| import freestyle.tagless._ | |
| /* domain objects */ | |
| case class Id(id: String) | |
| case class AcmeItem(id: Id) | |
| /* state */ | |
| trait MapState[K, V] { | |
| type Type = Map[K, V] |
| import cats.data.State | |
| import freestyle.tagless._ | |
| /* domain objects */ | |
| case class Id(id: String) | |
| case class AcmeItem(id: Id) | |
| /* state */ | |
| trait MapState[K, V] { | |
| type Type = Map[K, V] |
| import cats.data.State | |
| import freestyle.free._ | |
| /* domain objects */ | |
| sealed trait Acme | |
| object Acme { | |
| case object AcmeUK extends Acme | |
| case object AcmeUS extends Acme | |
| } |
| import cats.Monad | |
| import cats.effect.IO | |
| import freestyle.tagless._ | |
| @tagless trait Logger { | |
| def debug(message: String): FS[Unit] | |
| } | |
| @tagless trait Summer { | |
| def sum(a: Int, b: Int): FS[Int] |
| import cats.effect.IO | |
| import freestyle.free._ | |
| import freestyle.free.implicits._ | |
| @free trait Logger { | |
| def debug(message: String): FS[Unit] | |
| } | |
| @free trait Summer { | |
| def sum(a: Int, b: Int): FS[Int] |
| import classy.{DecodeError, Read} | |
| import classy.config.ConfigDecoder | |
| import com.typesafe.config.Config | |
| import scala.util.{Failure, Success, Try} | |
| object ConfigReader { | |
| def apply[A](f: String => A): Read[Config, A] = { path => | |
| ConfigDecoder.instance[A] { config => | |
| Try(f(config.getString(path))) match { |