1. A method comprising: receiving a declarative specification that includes a plurality of stages, each stage specifies an atomic operation, a data input to the atomic operation, and a data output from the atomic operation, the data input is characterized by a data type; generating links between at least two of the stages to create a data integration workflow; and compiling, on a computer, the data integration workflow to generate computer code for execution on a parallel processing platform, the computer code configured to perform at least one of data preparation and data analysis.