Introduction to Spark with Scala

Ask For a Quote

If you are interested in arranging this course at your organisation, please use the form below to request a free quote.

eyJpZCI6IjIzIiwibGFiZWwiOiJTcGFya1NjYWxhIiwiYWN0aXZlIjoiMSIsIm9yaWdpbmFsX2lkIjoiNCIsInVuaXF1ZV9pZCI6InZibjIzYSIsInBhcmFtcyI6eyJlbmFibGVGb3JNZW1iZXJzaGlwIjoiMCIsInRwbCI6eyJ3aWR0aCI6IjEwMCIsIndpZHRoX21lYXN1cmUiOiIlIiwiYmdfdHlwZV8wIjoibm9uZSIsImJnX2ltZ18wIjoiIiwiYmdfY29sb3JfMCI6IiNjZGNkY2QiLCJiZ190eXBlXzEiOiJjb2xvciIsImJnX2ltZ18xIjoiIiwiYmdfY29sb3JfMSI6IiNjZGNkY2QiLCJiZ190eXBlXzIiOiJjb2xvciIsImJnX2ltZ18yIjoiIiwiYmdfY29sb3JfMiI6IiNmZjdmMDAiLCJiZ190eXBlXzMiOiJjb2xvciIsImJnX2ltZ18zIjoiIiwiYmdfY29sb3JfMyI6IiNmZjgwN2MiLCJmaWVsZF9lcnJvcl9pbnZhbGlkIjoiIiwiZm9ybV9zZW50X21zZyI6IlRoYW5rIHlvdSBmb3IgcmVxdWVzdGluZyBhIHF1b3RlLiBXZSBhaW0gdG8gcmVzcG9uZCB3aXRoaW4gNDggaG91cnMuIiwiZm9ybV9zZW50X21zZ19jb2xvciI6IiNmZjdmMDAiLCJoaWRlX29uX3N1Ym1pdCI6IjEiLCJyZWRpcmVjdF9vbl9zdWJtaXQiOiIiLCJ0ZXN0X2VtYWlsIjoiaW5mb0BtaW5kcHJvamVjdC5pbyIsInNhdmVfY29udGFjdHMiOiIxIiwiZXhwX2RlbGltIjoiOyIsImZiX2NvbnZlcnRfYmFzZSI6IiIsInB1Yl9wb3N0X3R5cGUiOiJwb3N0IiwicHViX3Bvc3Rfc3RhdHVzIjoicHVibGlzaCIsInJlZ193cF9jcmVhdGVfdXNlcl9yb2xlIjoic3Vic2NyaWJlciIsImZpZWxkX3dyYXBwZXIiOiI8ZGl2IFtmaWVsZF9zaGVsbF9jbGFzc2VzXSBbZmllbGRfc2hlbGxfc3R5bGVzXT5bZmllbGRdPFwvZGl2PiJ9LCJmaWVsZHMiOlt7ImJzX2NsYXNzX2lkIjoiNCIsIm5hbWUiOiJmdWxsX25hbWUiLCJsYWJlbCI6IiIsInBsYWNlaG9sZGVyIjoiWW91ciBmdWxsIG5hbWUiLCJ2YWx1ZSI6IiIsInZhbHVlX3ByZXNldCI6IiIsImh0bWwiOiJ0ZXh0IiwibWFuZGF0b3J5IjoiMSIsIm1pbl9zaXplIjoiIiwibWF4X3NpemUiOiIiLCJhZGRfY2xhc3NlcyI6IiIsImFkZF9zdHlsZXMiOiIiLCJhZGRfYXR0ciI6IiIsInZuX29ubHlfbnVtYmVyIjoiMCIsInZuX29ubHlfbGV0dGVycyI6IjAiLCJ2bl9wYXR0ZXJuIjoiMCIsInZuX2VxdWFsIjoiIiwiaWNvbl9jbGFzcyI6IiIsImljb25fc2l6ZSI6IiIsImljb25fY29sb3IiOiIiLCJ0ZXJtcyI6IiJ9LHsiYnNfY2xhc3NfaWQiOiI0IiwibmFtZSI6ImVtYWlsIiwibGFiZWwiOiIiLCJwbGFjZWhvbGRlciI6IllvdXIgZW1haWwgYWRkcmVzcyIsInZhbHVlIjoiIiwidmFsdWVfcHJlc2V0IjoiIiwiaHRtbCI6ImVtYWlsIiwibWFuZGF0b3J5IjoiMSIsIm1pbl9zaXplIjoiIiwibWF4X3NpemUiOiIiLCJhZGRfY2xhc3NlcyI6IiIsImFkZF9zdHlsZXMiOiIiLCJhZGRfYXR0ciI6IiIsInZuX29ubHlfbnVtYmVyIjoiMCIsInZuX29ubHlfbGV0dGVycyI6IjAiLCJ2bl9wYXR0ZXJuIjoiIiwidm5fZXF1YWwiOiIiLCJpY29uX2NsYXNzIjoiIiwiaWNvbl9zaXplIjoiIiwiaWNvbl9jb2xvciI6IiIsInRlcm1zIjoiIn0seyJic19jbGFzc19pZCI6IjQiLCJuYW1lIjoicGhvbmVfbnVtYmVyIiwibGFiZWwiOiIiLCJwbGFjZWhvbGRlciI6IllvdXIgcGhvbmUgbnVtYmVyIiwidmFsdWUiOiIiLCJ2YWx1ZV9wcmVzZXQiOiIiLCJodG1sIjoidGV4dCIsIm1hbmRhdG9yeSI6IjEiLCJtaW5fc2l6ZSI6IiIsIm1heF9zaXplIjoiIiwiYWRkX2NsYXNzZXMiOiIiLCJhZGRfc3R5bGVzIjoiIiwiYWRkX2F0dHIiOiIiLCJ2bl9vbmx5X251bWJlciI6IjAiLCJ2bl9vbmx5X2xldHRlcnMiOiIwIiwidm5fcGF0dGVybiI6IiIsInZuX2VxdWFsIjoiIiwiaWNvbl9jbGFzcyI6IiIsImljb25fc2l6ZSI6IiIsImljb25fY29sb3IiOiIiLCJ0ZXJtcyI6IiJ9LHsiYnNfY2xhc3NfaWQiOiI2IiwibmFtZSI6Im5vX2RlbGVnYXRlcyIsImxhYmVsIjoiIiwicGxhY2Vob2xkZXIiOiJFc3RpbWF0ZWQgbnVtYmVyIG9mIGRlbGVnYXRlcyIsInZhbHVlIjoiIiwidmFsdWVfcHJlc2V0IjoiIiwiaHRtbCI6InRleHQiLCJtYW5kYXRvcnkiOiIxIiwibWluX3NpemUiOiIiLCJtYXhfc2l6ZSI6IiIsImFkZF9jbGFzc2VzIjoiIiwiYWRkX3N0eWxlcyI6IiIsImFkZF9hdHRyIjoiIiwidm5fb25seV9udW1iZXIiOiIwIiwidm5fb25seV9sZXR0ZXJzIjoiMCIsInZuX3BhdHRlcm4iOiIiLCJ2bl9lcXVhbCI6IiIsImljb25fY2xhc3MiOiIiLCJpY29uX3NpemUiOiIiLCJpY29uX2NvbG9yIjoiIiwidGVybXMiOiIifSx7ImJzX2NsYXNzX2lkIjoiNiIsIm5hbWUiOiJkdXJhdGlvbiIsImxhYmVsIjoiIiwicGxhY2Vob2xkZXIiOiJEdXJhdGlvbiBvZiB0aGUgY291cnNlIiwidmFsdWUiOiIiLCJ2YWx1ZV9wcmVzZXQiOiIiLCJodG1sIjoidGV4dCIsIm1hbmRhdG9yeSI6IjEiLCJtaW5fc2l6ZSI6IiIsIm1heF9zaXplIjoiIiwiYWRkX2NsYXNzZXMiOiIiLCJhZGRfc3R5bGVzIjoiIiwiYWRkX2F0dHIiOiIiLCJ2bl9vbmx5X251bWJlciI6IjAiLCJ2bl9vbmx5X2xldHRlcnMiOiIwIiwidm5fcGF0dGVybiI6IiIsInZuX2VxdWFsIjoiIiwiaWNvbl9jbGFzcyI6IiIsImljb25fc2l6ZSI6IiIsImljb25fY29sb3IiOiIiLCJ0ZXJtcyI6IiJ9LHsiYnNfY2xhc3NfaWQiOiI2IiwibmFtZSI6ImRhdGVzIiwibGFiZWwiOiIiLCJwbGFjZWhvbGRlciI6IlByZWZlcnJlZCBkYXRlcyBmb3IgdGhlIGNvdXJzZSIsInZhbHVlIjoiIiwidmFsdWVfcHJlc2V0IjoiIiwiaHRtbCI6InRleHQiLCJtYW5kYXRvcnkiOiIxIiwibWluX3NpemUiOiIiLCJtYXhfc2l6ZSI6IiIsImFkZF9jbGFzc2VzIjoiIiwiYWRkX3N0eWxlcyI6IiIsImFkZF9hdHRyIjoiIiwidm5fb25seV9udW1iZXIiOiIwIiwidm5fb25seV9sZXR0ZXJzIjoiMCIsInZuX3BhdHRlcm4iOiIiLCJ2bl9lcXVhbCI6IiIsImljb25fY2xhc3MiOiIiLCJpY29uX3NpemUiOiIiLCJpY29uX2NvbG9yIjoiIiwidGVybXMiOiIifSx7ImJzX2NsYXNzX2lkIjoiNiIsIm5hbWUiOiJsb2NhdGlvbiIsImxhYmVsIjoiIiwicGxhY2Vob2xkZXIiOiJUcmFpbmluZyBjb3Vyc2UgbG9jYXRpb24iLCJ2YWx1ZSI6IiIsInZhbHVlX3ByZXNldCI6IiIsImh0bWwiOiJ0ZXh0IiwibWFuZGF0b3J5IjoiMSIsIm1pbl9zaXplIjoiIiwibWF4X3NpemUiOiIiLCJhZGRfY2xhc3NlcyI6IiIsImFkZF9zdHlsZXMiOiIiLCJhZGRfYXR0ciI6IiIsInZuX29ubHlfbnVtYmVyIjoiMCIsInZuX29ubHlfbGV0dGVycyI6IjAiLCJ2bl9wYXR0ZXJuIjoiIiwidm5fZXF1YWwiOiIiLCJpY29uX2NsYXNzIjoiIiwiaWNvbl9zaXplIjoiIiwiaWNvbl9jb2xvciI6IiIsInRlcm1zIjoiIn0seyJic19jbGFzc19pZCI6IjYiLCJuYW1lIjoiY3VzdG9taXNlIiwibGFiZWwiOiIiLCJwbGFjZWhvbGRlciI6IkNvdXJzZSBjdXN0b21pc2F0aW9uIGRldGFpbHMgaWYgYW55IiwidmFsdWUiOiIiLCJ2YWx1ZV9wcmVzZXQiOiIiLCJodG1sIjoidGV4dGFyZWEiLCJtYW5kYXRvcnkiOiIwIiwibWluX3NpemUiOiIiLCJtYXhfc2l6ZSI6IiIsImFkZF9jbGFzc2VzIjoiIiwiYWRkX3N0eWxlcyI6IiIsImFkZF9hdHRyIjoiIiwidm5fb25seV9udW1iZXIiOiIwIiwidm5fb25seV9sZXR0ZXJzIjoiMCIsInZuX3BhdHRlcm4iOiIiLCJ2bl9lcXVhbCI6IiIsImljb25fY2xhc3MiOiIiLCJpY29uX3NpemUiOiIiLCJpY29uX2NvbG9yIjoiIiwidGVybXMiOiIifSx7ImJzX2NsYXNzX2lkIjoiNiIsIm5hbWUiOiJtZXNzYWdlIiwibGFiZWwiOiIiLCJwbGFjZWhvbGRlciI6IkFueSBvdGhlciBkZXRhaWxzIG9yIHF1ZXN0aW9ucyIsInZhbHVlIjoiIiwidmFsdWVfcHJlc2V0IjoiIiwiaHRtbCI6InRleHRhcmVhIiwibWFuZGF0b3J5IjoiMSIsIm1pbl9zaXplIjoiIiwibWF4X3NpemUiOiIiLCJhZGRfY2xhc3NlcyI6IiIsImFkZF9zdHlsZXMiOiIiLCJhZGRfYXR0ciI6IiIsInZuX29ubHlfbnVtYmVyIjoiMCIsInZuX29ubHlfbGV0dGVycyI6IjAiLCJ2bl9wYXR0ZXJuIjoiIiwidm5fZXF1YWwiOiIiLCJpY29uX2NsYXNzIjoiIiwiaWNvbl9zaXplIjoiIiwiaWNvbl9jb2xvciI6IiIsInRlcm1zIjoiIn0seyJic19jbGFzc19pZCI6IjEyIiwibmFtZSI6IkNhcHRjaGEiLCJsYWJlbCI6IlBsZWFzZSBjb25maXJtIHlvdSBhcmUgbm90IGEgYm90OiIsImh0bWwiOiJyZWNhcHRjaGEiLCJ0ZXJtcyI6IiIsInJlY2FwLXRoZW1lIjoibGlnaHQiLCJyZWNhcC10eXBlIjoiaW1hZ2UiLCJyZWNhcC1zaXplIjoibm9ybWFsIn0seyJic19jbGFzc19pZCI6IjEyIiwibmFtZSI6InF1b3RlIiwibGFiZWwiOiJBc2sgRm9yIGEgUXVvdGUiLCJodG1sIjoic3VibWl0IiwiYWRkX2NsYXNzZXMiOiIiLCJhZGRfc3R5bGVzIjoiIiwiYWRkX2F0dHIiOiIiLCJpY29uX2NsYXNzIjoiIiwiaWNvbl9zaXplIjoiIiwiaWNvbl9jb2xvciI6IiIsInRlcm1zIjoiIn1dLCJvcHRzX2F0dHJzIjp7ImJnX251bWJlciI6IjQifX0sImltZ19wcmV2aWV3Ijoic2ltcGxlLXdoaXRlLnBuZyIsInZpZXdzIjoiMTYiLCJ1bmlxdWVfdmlld3MiOiIxMSIsImFjdGlvbnMiOiIwIiwic29ydF9vcmRlciI6IjQiLCJpc19wcm8iOiIwIiwiYWJfaWQiOiIwIiwiZGF0ZV9jcmVhdGVkIjoiMjAxOC0wOC0yMSAxMTo1MjoxNiIsImltZ19wcmV2aWV3X3VybCI6Imh0dHBzOlwvXC9zdXBzeXN0aWMtNDJkNy5reGNkbi5jb21cL19hc3NldHNcL2Zvcm1zXC9pbWdcL3ByZXZpZXdcL3NpbXBsZS13aGl0ZS5wbmciLCJ2aWV3X2lkIjoiMjNfMjkxMDg2Iiwidmlld19odG1sX2lkIjoiY3NwRm9ybVNoZWxsXzIzXzI5MTA4NiIsImNvbm5lY3RfaGFzaCI6ImI0NDVmZjU0NTI0ZjY3NzBkMmY3NjU5MjBmYzQ1YzdiIn0=

Description

Apache Spark has revolutionised the way in which large organisations ingest and process Big Data and is now quickly becoming the industry standard for large scale and near real-time analytics.

During this training course, the attendees will be introduced to the essential features of the Spark architecture, its data structures and compatibility with other Big Data and analytical tools (e.g. Hadoop, Hive, SQL, R and Python). They will be also provided with practical skills in understanding Scala language to allow them to design and deploy Spark applications on a multi-node, parallel computing cluster.

The course will also contain an introduction to machine learning techniques available in Spark (through Spark ML and MLlib libraries), model validation, selection and optimisation methods, and examples of algorithms used for network/graph analytics (using GraphX library).  


 

Basic course information

Minimum recommended duration: 4-5 full days or 8-10 half-days (can be spread across multiple weeks)

Programming languages used: Scala (also HDFS shell commands and basics of Java)

Minimum number of attendees: 5

Course level: For beginners/novice/intermediate data engineers, data scientists and developers.

Pre-requisites: Good IT skills and practical experience in manipulating large datasets are recommended. Some knowledge of Unix commands will be beneficial, however these will be explained during the training.

IT recommendations: During the course the attendees will perform several MapReduce jobs on a Linux-based Mind Project Hadoop cluster. In order to benefit from the contents of the course it is recommended that attendees have at least one of the following web browsers: Chrome, Safari, Mozilla Firefox and/or Internet Explorer, installed on their laptops (any operating system). Also, the laptops should be equipped with a simple text editor suitable for code/script typing e.g. Notepad++ (for Windows users) or TextWrangler (for Mac users). Please be advised that we do not recommend the following applications: WordPad, Gedit or TextEdit. Other IT requirements will apply depending on the agreed setup. Please contact us should you wish to use a different setup for your course.
 

 

Programme outline

The programme for each in-house training course is discussed and agreed individually with the client. The proposed contents of the course may include (but is not limited to) the following concepts and topics:

  • Using Scala language, Spark engine and its libraries for data import/export from/to various file formats and storage systems (e.g. standard file formats like csv, tab, txt, or Hadoop, Amazon S3 buckets, Hive etc.),

  • Understanding the structure and operations applicable to Resilient Distributed Datasets, DataFrames and other Spark data structures and objects; Spark transformations and actions,

  • Data wrangling within Spark – converting between various data structures, recoding values, joins and merges, working with timestamps and strings, preparing data for further processing, applying Spark ML transformers e.g. normalisation or standardisation,

  • Calculating descriptive statistics and carrying out essential exploratory data analysis including data aggregations and summaries, cross-tabulations, frequency/contingency tables etc.,

  • Deploying fully-functional Big Data machine learning Spark applications using Spark ML pipelines – multiple linear regressions for predicting numeric continuous target variable and Generalized Linear Models e.g. logistic regression for binary classification – a tutorial on Spark ML and MLlib libraries,

  • Performing model cross-validation; to calculate and interpret models evaluation metrics e.g. accuracy, recall, precision, R squared, ROC curve, MSE and RMSE,

  • Manipulating and extracting information from graphs and networks, estimating essential network/graph parameters e.g. degrees, triangles, or (strongly) connected components and applying graph algorithms e.g. PageRank or label propagation – a tutorial on Spark GraphX,

  • Understanding the compatibility of Spark with other Big Data and data science tools (e.g. Hadoop, Hive, RDBMSs) and programming languages (e.g. Java, Python and R).

Customise the course

We can adapt our in-house training courses to address your specific needs and requirements e.g.:

  • The course can be designed to include your own data. If it is not possible e.g. due to data security issues, we can customise the course to contain exercises that address similar problems,

  • The course period can be spread across multiple weeks/months depending on your needs and availability – this will allow your delegates to revise and practise the learnt skills before the next session and provide them with additional time to internalise all presented material,

  • The course can include a custom project spread across several weeks/months with a follow-up session at the end of the period,

  • As all our in-house training courses are quoted individually, the final cost quotation will be based on several factors: the number of attendees, days of training (plus additional support/project guidance if needed), location of the training, complexity of IT setup and the extent of course customisation.

Arrange this course at your organisation

If you are interested in this in-house training course, please press Ask For Quote button in the top part of the page to enquire about and request a quote for this course based on your specific needs and desired outcomes of the training.

In your enquiry please include the following information:

  • contact details to a person who should receive the quote,

  • number of delegates you would like to train,

  • approximate number of days (or half-days) you would like to arrange the course for (including additional support/project guidance if needed),

  • location of the training venue,

  • any details on course customisation or specific topics you would like the course to address – most importantly, please indicate desired outcomes of the course if different then presented above,

  • any other questions you may have.


Contact us to discuss your training needs
If you require more information about this specific training course or would like to discuss other details not covered above, please contact us directly.

Introduction to Spark with Scala