This presentation is about building a data product backed by Apache Spark. The source code for the demo can be found at http://brkyvz.github.io/spark-pipeline
2. Who Am I?
• Software Engineer at Databricks
• MS Management Science & Eng. @ Stanford
University
• BS Mechanical Eng. @ Bogazici University,
Istanbul
• Contributor to Spark Core, MLlib, SQL, and
Streaming
• Maintainer of Spark Packages
2
3. Outline
• Intro - Spark & Ecosystem
• Build an End-to-End Data Product
• Step 1: Understand your Data
• SparkSQL - DataFrames
• Step 2: Build your Service
• SparkMLlib - ML Pipelines
• Step 3: Monitor your Service
• Spark Streaming
• Kafka
3
4. Timeline of Spark
• 2010: a research paper
• 2010-13: a project under github/mesos
• 2013-14: Apache incubating -> TLP
• 2014: the most active project in the ASF
4
11. • a community index of 3rd-party packages
• helps users find packages
• helps package developers meet users
• users provide feedback through voting and
commenting
• index maintained by Databricks
11
3rd Party Packages
Community
Spark Packages
http://spark-packages.org
12. Types of Packages Currently Available
• Data Source Connectors
• spark-avro, spark-redshift, spark-mongodb, spark-
sequoiadb, spark-cassandra-connector, …
• Deployment Scripts
• spark_azure, spark_gce, sbt-spark-ec2
• Machine Learning Algorithms
• spark-hash, spark-mrmr-feature-selection, streaming-
matrix-factorization, generalized-kmeans-clustering
• and many more…
12
13. What’s new in Spark 1.6
• Dataset API
• Automatic memory configuration
• Optimized state storage in Spark Streaming
• Pipeline persistence in Spark ML
13
14. Demo
Source Code: http://brkyvz.github.io/spark-pipeline
Scenario: As an e-commerce company, we would like to recommend
products that users may like in order to increase sales and profit.
Dataset: http://jmcauley.ucsd.edu/data/amazon/
- 18 GB
- 82.83 million reviews
We will use a subset with 24 million reviews
14
21. Solution Proposal
Use Matrix Factorization to understand customers
and items.
Then:
1) Predict the rating for a product for a given user
2) Find similar products, and show top k
21