Skip to content
A Scala API for Cascading
Branch: develop
Clone or download
LorenzNickel and johnynek Updated/Removed invalid links (#1901)
* Removed invalid link & typo

Link cannot be opened, can't find a good alternative

* Updated link

Old link redirects to this link

* Removed invalid link

Link cannot be opened, can't find a good alternative

* Updated link

Link seems to contain the old content

* Removed invalid links

Both links are no longer available, no alternative found
Latest commit d658d78 Mar 7, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
logo Add scalding logo Oct 25, 2013
project partial port of PARQUET-1191 - handle thrift binary correctly. (#1872) Dec 19, 2018
scalding-args/src Use reflection over Jobs to find serialized classes (#1654) Apr 7, 2017
scalding-benchmarks/src/test/scala/com/twitter/scalding import hygiene: remove unused imports Apr 1, 2015
scalding-cats/src Add scalding-cats module for cats typeclasses on scalding types (#1890) Dec 10, 2018
scalding-core Fix for planning issue for two `hashJoin`s in a row (#1897) Jan 29, 2019
scalding-date/src Updated/Removed invalid links (#1901) Mar 7, 2019
scalding-db Updated/Removed invalid links (#1901) Mar 7, 2019
scalding-estimators-test/src/test Remove unused imports Jul 30, 2018
scalding-hadoop-test/src Remove unused imports Jul 30, 2018
scalding-hraven remove a few warnings (#1720) Sep 24, 2017
scalding-jdbc/src Updated/Removed invalid links (#1901) Mar 7, 2019
scalding-parquet-scrooge-fixtures/src/test/resources Scalding updates for Scala 2.12 (#1646) Mar 23, 2017
scalding-repl fix broken ascii art (#1900) Feb 13, 2019
scalding-serialization/src Updated/Removed invalid links (#1901) Mar 7, 2019
scalding-thrift-macros-fixtures/src/test/resources Because, because... fun, the scala compiler has special naming rules … Mar 4, 2016
scalding-thrift-macros Spark improvements (#1868) Aug 21, 2018
tutorial remove a few warnings (#1720) Sep 24, 2017
.gitignore introduce scalding-quotation sub-project (#1755) Dec 18, 2017
.travis.yml Fix a race condition in `JobTest` (#1895) Jan 18, 2019 Cherry pick 0.17.2 release related changes into develop (#1710) Jul 15, 2017 Create Aug 26, 2016
LICENSE Initial Import Jan 10, 2012
NOTICE Initial Import Jan 10, 2012
build.sbt Bump Avro to 1.8.2 (#1899) Jan 30, 2019
version.sbt Cherry pick 0.17.2 release related changes into develop (#1710) Jul 15, 2017


Build status Coverage Status Latest version Chat

Scalding is a Scala library that makes it easy to specify Hadoop MapReduce jobs. Scalding is built on top of Cascading, a Java library that abstracts away low-level Hadoop details. Scalding is comparable to Pig, but offers tight integration with Scala, bringing advantages of Scala to your MapReduce jobs.

Scalding Logo

Word Count

Hadoop is a distributed system for counting words. Here is how it's done in Scalding.

package com.twitter.scalding.examples

import com.twitter.scalding._
import com.twitter.scalding.source.TypedText

class WordCountJob(args: Args) extends Job(args) {
    .flatMap { line => tokenize(line) }
    .groupBy { word => word } // use each word for a key
    .size // in each group, get the size
    .write(TypedText.tsv[(String, Long)](args("output")))

  // Split a piece of text into individual words.
  def tokenize(text: String): Array[String] = {
    // Lowercase each word and remove punctuation.
    text.toLowerCase.replaceAll("[^a-zA-Z0-9\\s]", "").split("\\s+")

Notice that the tokenize function, which is standard Scala, integrates naturally with the rest of the MapReduce job. This is a very powerful feature of Scalding. (Compare it to the use of UDFs in Pig.)

You can find more example code under examples/. If you're interested in comparing Scalding to other languages, see our Rosetta Code page, which has several MapReduce tasks in Scalding and other frameworks (e.g., Pig and Hadoop Streaming).

Documentation and Getting Started

Please feel free to use the beautiful Scalding logo artwork anywhere.


For user questions or scalding development (internals, extending, release planning):!forum/scalding-dev (Google search also works as a first step)

In the remote possibility that there exist bugs in this code, please report them to:

Follow @Scalding on Twitter for updates.

Chat: Gitter

Get Involved + Code of Conduct

Pull requests and bug reports are always welcome!

We use a lightweight form of project governence inspired by the one used by Apache projects. Please see Contributing and Committership for our code of conduct and our pull request review process. The TL;DR is send us a pull request, iterate on the feedback + discussion, and get a +1 from a Committer in order to get your PR accepted.

The current list of active committers (who can +1 a pull request) can be found here: Committers

A list of contributors to the project can be found here: Contributors


There is a script (called sbt) in the root that loads the correct sbt version to build:

  1. ./sbt update (takes 2 minutes or more)
  2. ./sbt test
  3. ./sbt assembly (needed to make the jar used by the scald.rb script)

The test suite takes a while to run. When you're in sbt, here's a shortcut to run just one test:

> test-only com.twitter.scalding.FileSourceTest

Please refer to FAQ page if you encounter problems when using sbt.

We use Travis CI to verify the build: Build Status

We use Coveralls for code coverage results: Coverage Status

Scalding modules are available from maven central.

The current groupid and version for all modules is, respectively, "com.twitter" and 0.17.2.

Current published artifacts are

  • scalding-core_2.11, scalding-core_2.12
  • scalding-args_2.11, scalding-args_2.12
  • scalding-date_2.11, scalding-date_2.12
  • scalding-commons_2.11, scalding-commons_2.12
  • scalding-avro_2.11, scalding-avro_2.12
  • scalding-parquet_2.11, scalding-parquet_2.12
  • scalding-repl_2.11, scalding-repl_2.12

The suffix denotes the scala version.


  • Ebay
  • Etsy
  • Sharethrough
  • Snowplow Analytics
  • Soundcloud
  • Twitter

To see a full list of users or to add yourself, see the wiki


Thanks for assistance and contributions:

A full list of contributors can be found on GitHub.


Copyright 2016 Twitter, Inc.

Licensed under the Apache License, Version 2.0

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.