Scalable data pipelines with shapeless and cats
summary
Shows how to build compile-time assembled data pipelines using Cats and Shapeless: pipelines become sealed ADTs with HLists for static lists, Coproducts for branching results, and phantom-type guards so selection is a type, not runtime strings. Uses Cats Functor (and a bounded-functor + ID wrapper to support Spark Datasets with Encoder bounds), encodes induction with implicits and a simple implicit-anyval ops operator to let client code write pipeline1 :: pipeline2 :: pipeline3.
AI-written summary · about
chapters (15)
- 0:00Intro
- 0:50Deck
- 1:10Simple pipeline
- 4:12Convert function
- 7:17Abstracting
- 10:35Pipeline Switching Mechanism
- 11:05Pipelines with constants
- 17:08Heterogeneous lists
- 17:57Categorical duals
- 20:31Type annotations
- 21:27Implicit induction
- 22:43Pipeline ops
- 24:27Why did we make it a death
- 26:23BoundedFunctor
- 27:31Recap
related talks
18mDiscovering Types (from Strings) with Cats and Shapeless
30mSMART DATA PIPELINES FOR AI
36mKittens - datatype-generic functional programming with Scala
31mCool toolz in the Scalaz and Cats toolboxes
32mReproducible Data Pipelines Using Controlled Effects
43mData Pipelines à la Mode
28mAdopting Cats
57mKittens: Shapeless Typeclass Derivation for Cats
