- Simple - Functions, filters, and aggregators all use the same syntax. Joins are implicit and natural.
- Expressive - Logical composition is very powerful, and you can run arbitrary Clojure code in your query with little effort.
- Interactive - Run queries from the Clojure REPL.
- Scalable - Cascalog queries run as a series of MapReduce jobs.
- Query anything - Query HDFS data, database data, and/or local data by making use of Cascading's "Tap" abstraction
- Careful handling of null values - Null values can make life difficult. Cascalog has a feature called "non-nullable variables" that makes dealing with nulls painless.
- First class interoperability with Cascading - Operations defined for Cascalog can be used in a Cascading flow and vice-versa
- First class interoperability with Clojure - Can use regular Clojure functions as operations or filters, and since Cascalog is a Clojure DSL, you can use it in other Clojure code.