Apache Pig Architecture in Hadoop: Detailed Explanation

By Rohit Sharma

Updated on Aug 19, 2025 | 15 min read | 14.62K+ views

Share:

Apache Pig architecture in Hadoop plays a crucial role in simplifying large-scale data processing. Built on top of Hadoop, it provides a high-level abstraction over MapReduce, allowing developers to handle complex workflows with fewer lines of code. 

By using Pig Latin, a SQL-like scripting language, Apache Pig enables efficient data transformation, filtering, grouping, and analysis. Its architecture supports both structured and unstructured data, making it an essential tool for big data management and analytics in enterprises leveraging Hadoop clusters.

In this blog, we break down the Apache Pig architecture in Hadoop with example, explaining its key components such as the Grunt Shell, Parser, Optimizer, and Execution Engine. Through examples and step-by-step workflows, you’ll learn how Pig processes data efficiently and how it can streamline your big data projects.

Want to dive deeper into data science and Hadoop? Our Online Data Science Courses will provide you with the skills to handle big data challenges like a pro.

Apache Pig Architecture in Hadoop: Key Features

Apache Pig is a high-level platform built on top of Hadoop that simplifies the process of writing and managing MapReduce jobs. Apache Pig architecture in Hadoop provides an abstraction layer over MapReduce, enabling users to write data processing tasks using a simpler language called Pig Latin. 

Instead of writing complex Java code for every job, Pig allows you to express tasks in a more readable and maintainable way.  

The key advantage of Apache Pig architecture in Hadoop is its ability to abstract MapReduce's complexities, providing developers an easier-to-use interface.  

Simplify Your Data Science Journey with Advanced Courses. Master the skills to leverage Apache Pig and Hadoop with our industry-focused data science courses:

Let’s explore some of Apache Pig's key features, which make it an essential tool in the Hadoop ecosystem. 

  • Fewer Lines of Code:

One of the biggest advantages of using Apache Pig is that it reduces the lines of code required to perform data processing tasks. What would normally take hundreds of lines in MapReduce can be written in just a few lines using Pig Latin. This makes your code more concise and easier to manage.

  • Reduced Development Time:

Pig simplifies MapReduce, allowing developers to focus on data logic instead of low-level programming. This significantly reduces development time, making it quicker to implement big data solutions.

  • Rich Dataset Operations:

Apache Pig supports a wide range of operations on datasets, including filtering, joining, and grouping. These built-in operations make manipulating data and achieving desired results easier without writing custom MapReduce code for each operation.

  • SQL-like Syntax:

Pig Latin, the scripting language used in Pig, is similar to SQL, making it easier for developers with database experience to get started. Its syntax is designed to be familiar to those who have worked with relational databases, making the learning curve much less steep.

  • Handles Both Structured and Unstructured Data:

Unlike SQL tools, Pig can process both structured and unstructured data. This makes it ideal for processing diverse data formats like log files, text, XML data, and tabular datasets.

Now, let’s break down the key components of Apache Pig to see how it works.

Key Components of Apache Pig

The Apache Pig architecture in Hadoop consists of several key components that work together to provide an efficient and flexible platform for processing large datasets. 

Let's break these components down and understand how they fit together to process data. 

  • Grunt Shell:

Grunt Shell enables users to execute Pig Latin commands interactively. It’s similar to a command-line interface where you can interactively test and execute Pig Latin scripts. 

The Grunt Shell is the entry point for users to interact with the Pig environment and run queries directly on the Hadoop cluster.

  • Pig Latin Scripts:

Pig Latin is the language used to write scripts in Apache Pig. It is a data flow language designed to process large data sets. It is similar to SQL but with more flexibility. 

Pig Latin scripts consist of simple statements for data transformation and loading, such as filtering, grouping, and joining. This high-level language simplifies the complexity of writing MapReduce jobs directly.  

A simple Pig Latin script could look like this:

data = LOAD 'input_data' AS (name:chararray, age:int);
filtered_data = FILTER data BY age > 25;
STORE filtered_data INTO 'output_data';

While Pig Latin simplifies data processing, mastering advanced SQL functions can enhance your data handling capabilities. Strengthen your skills with this free upGrad course. 

  • Parser:

The Parser is responsible for parsing the Pig Latin script. It translates the script into an internal representation that the Optimizer can process. The parser validates Pig Latin scripts before optimization.

  • Optimizer:

Once the script is parsed, the Optimizer enhances execution efficiency by reordering operations and applying optimizations like projection pruning (removing unused columns), early filtering (eliminating irrelevant data before processing), and combining multiple operations into a single MapReduce job. 

These optimizations reduce resource consumption and improve performance, making Apache Pig more effective for large-scale data processing.

  • Execution Engine:

The Execution Engine is where the actual data processing happens. It takes the optimized Pig Latin script and translates it into a series of MapReduce jobs that can be executed on the Hadoop cluster. It’s responsible for orchestrating the execution of tasks across Hadoop's distributed environment. 

The Execution Engine interacts with Hadoop’s YARN, HDFS, and MapReduce layers to process Pig scripts, translating them into a Directed Acyclic Graph (DAG) of MapReduce jobs for efficient execution.

Also Read: Features & Applications of Hadoop

Now that you understand the components, let’s examine Pig Latin scripts and learn how to execute them effectively for data processing.

Data Science Courses to upskill

Explore Data Science Courses for Career Progression

background

Liverpool John Moores University

MS in Data Science

Double Credentials

Master's Degree17 Months

Placement Assistance

Certification6 Months

Pig Latin Scripts for Beginners: Script Execution

These scripts are the heart of Apache Pig, allowing you to write data processing logic in a simplified, SQL-like language.

Pig Latin syntax is designed to be straightforward, even if you’re new to it. It’s different from traditional programming languages because it focuses on data flow, making it intuitive for data processing tasks.

Here’s a brief overview of the common operators used in Pig Latin:

  • LOAD: This operator is used to load data from a source (like HDFS) into Pig.
  • FILTER: This operator filters data based on certain conditions (similar to WHERE in SQL).
  • GROUP: This operator groups the data by one or more fields, similar to the GROUP BY statement in SQL.
  • JOIN: This allows you to join two datasets together, just like SQL’s JOIN.

Example Syntax Overview: 

data = LOAD 'input_data' USING PigStorage(',') AS (name:chararray, age:int);
filtered_data = FILTER data BY age > 25;
grouped_data = GROUP filtered_data BY name;

By default, Pig loads data from HDFS unless specified otherwise.

The following flowchart illustrates the step-by-step process of executing a Pig Latin script within Apache Pig architecture in Hadoop, showing the smooth transition from writing the script to getting the final output.

Let’s write some Pig Latin scripts to see their use in real data processing tasks. Below are some simple examples to demonstrate how to load data, filter it, and transform it:

Data Loading

The LOAD operator can bring data into Pig from HDFS.

data = LOAD 'student_data' USING PigStorage(',') AS (name:chararray, age:int, grade:chararray);

Here, student_data is the dataset being loaded, and we're defining the columns (name, age, grade) with their respective data types.

Data Filtering

Once data is loaded, you can filter it to retain only the records that meet certain conditions.

filtered_data = FILTER data BY age > 18;

This script filters out students who are under 18 years old.

Grouping Data

If you want to group the data by a column (like grade), use the GROUP operator.

grouped_data = GROUP filtered_data BY grade;

This groups the filtered data by the grade field.

Storing the Result

After performing transformations, you can store the output data back into HDFS.

STORE grouped_data INTO 'output_data' USING PigStorage(',');

This stores the grouped data into an output file, making it available for further use.

When you run Pig Latin scripts, they are first parsed and then compiled into a series of MapReduce jobs that run on the Apache Pig architecture in Hadoop. These jobs are then executed across a Hadoop cluster, and the results are returned after processing.

  • The Grunt Shell is used to execute the script interactively.
  • The Parser checks the syntax of the Pig Latin script.
  • The Optimizer enhances the script by applying optimizations like filter pushing and projection pruning.
  • Finally, the Execution Engine translates the optimized script into MapReduce jobs, running the jobs across Hadoop nodes.

Example Script Execution: 

grunt> exec_script.pig

This command runs the script and returns the processed result.

Also Read: Top 10 Hadoop Tools to Make Your Big Data Journey Easy

To understand how Pig Latin transforms data, let’s look at how Pig stores and processes data internally.

Understanding Pig Latin Data Model Execution

In Apache Pig architecture in Hadoop, data is processed using a specific model based on relations, which are similar to tables in relational databases. Understanding how this model works is crucial for effectively utilizing Pig Latin for data transformation and analysis. 

Let’s start with the Relation Model that forms the foundation of data representation in Pig Latin.

Subscribe to upGrad's Newsletter

Join thousands of learners who receive useful tips

Promise we won't spam!

The Relation Model

In Pig Latin, the relation model is central to data structure and processing. A relation in Pig is similar to a table in a relational database, where data is organized into rows and columns. 

However, unlike relational databases, Pig’s data model allows for more flexible and complex structures, accommodating both structured and unstructured data.

The basic components of the relation model are:

  • Tuples:

tuple is a single record or row of data. Think of it as similar to a row in a relational database table. Each tuple consists of one or more fields, where each field holds a specific data value (e.g., a string, integer, or date).

Example: A tuple for student data might look like:
('Jai Sharma', 21, 'Computer Science')

Each field in the tuple corresponds to a column in a traditional relational database, and a tuple is equivalent to one row in a table.

  • Bags:

A bag is an unordered collection of tuples. In relational databases, you could think of a bag as a set of rows but with the added flexibility of containing multiple tuples that might be of different types or structures. Bags allow Pig Latin to handle cases where multiple values may exist for a single key (like a group of records sharing a common attribute).

Example: A bag might contain several tuples for students in the same department:
{ ('Jai Sharma', 21, 'Computer Science'), ('Neha Gupta', 22, 'Computer Science') }

A bag is similar to a group or list of rows in a relational database but with the added flexibility of holding multiple entries for the same entity.

  • Relating Tuples and Bags to Relational Databases:
    • Tuples are like rows in a relational database.
    • Bags are like tables containing multiple rows but don’t require a predefined schema for all rows. Unlike traditional relational tables, bags are more flexible and can include various data types.
  • Fields:

Each field in a tuple represents a value of a specific type. In a relational database, fields are analogous to columns; each field contains a single piece of data (string, integer, etc.).

Example: In the tuple ('Jai Sharma', 21, 'Computer Science'), the fields are:

  • Jai Sharma (string, name)
  • 21 (integer, age)
  • Computer Science (string, major)

The relation model in Pig Latin provides a flexible way to work with complex datasets. 

Also Read: DBMS vs. RDBMS: Understanding the Key Differences, Features, and Career Opportunities

Let’s dive into the key execution modes and see how they impact performance.

Execution Modes 

In Apache Pig architecture in Hadoop, you have two primary execution modes for running Pig Latin jobs: Local Mode and MapReduce Mode. 

Let’s explore both of these modes, understand when to use them, and the benefits each provides.

Local Mode

Local mode runs Pig scripts on your local machine instead of a Hadoop cluster. It is typically used for small datasets or during the development and testing phases when you don’t need to leverage the full power of the Hadoop cluster. 

Local mode is useful for quick prototyping or debugging Pig Latin scripts before deploying them to the cluster.

  • Use Case:

Local mode is best when working with small datasets that fit comfortably into your machine’s memory and for tasks where performance isn’t the top priority.

  • Execution Process in Local Mode:
    • Write your Pig Latin script.
    • Run the script using the Grunt Shell or in a local environment.
    • Pig will execute the job on your local filesystem (not HDFS) and return the results to you.

Example:

pig -x local my_script.pig

In this example, the -x local flag specifies that the script should be executed in local mode.

  • Benefits of Local Mode:
    • Faster execution for small datasets.
    • Simplified debugging and testing.
    • No need for Hadoop cluster setup.

MapReduce Mode

MapReduce mode, on the other hand, executes Pig Latin scripts on a Hadoop cluster, leveraging the full distributed power of MapReduce. In MapReduce mode, Pig generates MapReduce jobs executed across multiple Hadoop cluster nodes, allowing you to process large datasets.

  • Use Case:

MapReduce mode is ideal for large-scale data processing when you need to harness the power of a Hadoop cluster to distribute tasks and process vast amounts of data in parallel.

  • Execution Process in MapReduce Mode:
    • Write your Pig Latin script.
    • Submit the script to the Grunt Shell or run it in a Hadoop cluster.
    • Pig translates the script into MapReduce jobs and executes them across the Hadoop cluster.
    • Data is read from and written to HDFS, leveraging Hadoop’s distributed processing.

Example:

pig -x mapreduce my_script.pig

The -x mapreduce flag tells Pig to run the script on a Hadoop cluster.

  • Benefits of MapReduce Mode:
    • Scalable for large datasets, suitable for production environments.
    • Parallel processing of data across the cluster.
    • Uses Hadoop’s distributed computing for fault tolerance and performance.

Comparison Between Local and MapReduce Modes

Feature

Local Mode

MapReduce Mode

Execution Environment Local machine Hadoop cluster
Data Size Small datasets Large datasets
Performance Faster for small tasks Suitable for large-scale, parallel processing
Use Case Prototyping, debugging, small data testing Production, large-scale data processing
Setup Required No Hadoop cluster setup needed Requires Hadoop cluster and HDFS

How to Choose Between the Two Modes?

Let's say a company needs to analyze customer transaction data. During development, a data engineer tests the analysis code on a small sample using local mode, which runs everything on a single machine for quick debugging. Once the code is optimized, they switch to MapReduce mode to process the full dataset across a distributed cluster, ensuring efficient handling of large-scale data.

  • Local Mode: Choose local mode when working with small datasets, during initial development, or when quick testing is needed. It’s faster for smaller tasks but not suitable for large-scale data processing.
  • MapReduce Mode: Opt for MapReduce mode when working with big data in a distributed Hadoop environment. It’s the ideal choice for processing large datasets that exceed local machine capabilities.

Also Read: Big Data and Hadoop Difference: Key Roles, Benefits, and How They Work Together

With a clear understanding of execution modes, let’s explore how Apache Pig is applied in real-world scenarios across industries.

upGrad’s Exclusive Data Science Webinar for you –

How upGrad helps for your Data Science Career?

 

Applications and Apache Pig Architecture in Hadoop with Example

Let’s examine the real-life use cases of Apache Pig and show how its architecture solves complex data problems in various industries.

1. Data Transformation and ETL Processes

One of Apache Pig's most common applications is in ETL (Extract, Transform, Load) processes. Pig simplifies and accelerates the transformation of large datasets by providing an abstraction layer over MapReduce. Instead of writing complex Java-based MapReduce code, you can use Pig Latin to define a sequence of data transformations concisely and readably.

Example:
Suppose you need to extract customer data from a raw log file, transform it into a structured format, and load it into a data warehouse. Using Pig Latin, the process becomes much simpler:

raw_data = LOAD 'customer_logs' USING PigStorage(',') AS (name:chararray, age:int, purchase_amount:float);
transformed_data = FILTER raw_data BY purchase_amount > 50;
STORE transformed_data INTO 'output_data' USING PigStorage(',');

Apache Pig preprocesses semi-structured data by transforming, cleaning, and structuring it before storing it in data warehouses for efficient querying.

In this example, Pig loads raw log data, filters out customers with purchases below a certain threshold, and stores the transformed data into a structured output. This simple yet powerful process is key for ETL tasks in data warehousing and analytics.

2. Log Analysis

Apache Pig is also widely used for log analysis. Large-scale web logs, application logs, or system logs are often stored in Hadoop's HDFS. These logs can contain vast amounts of unstructured data that need to be processed, parsed, and analyzed for insights.

Example:
Consider you have logs of user activities from an e-commerce website, and you want to find out how many users made purchases above INR 100:

logs = LOAD 'user_activity_logs' USING PigStorage(',') AS (user_id:chararray, action:chararray, purchase_amount:float);
filtered_logs = FILTER logs BY action == 'purchase' AND purchase_amount > 100;
grouped_logs = GROUP filtered_logs BY user_id;
STORE grouped_logs INTO 'purchase_over_100' USING PigStorage(',');

In this case, Pig filters, groups, and analyzes user logs to identify high-value purchases, making it a perfect tool for log analysis.

3. Data Warehousing and Analytics

Apache Pig allows you to quickly process and transform large datasets in data warehousing and analytics, providing powerful features for aggregations, joins, and complex data manipulations. It can handle both structured and unstructured data, making it useful for a wide range of applications.

Example:
Let’s say you have sales data and want to calculate total sales by product category. Using Pig Latin, you can load the data, perform the aggregation, and store the results:

sales_data = LOAD 'sales_data' USING PigStorage(',') AS (product_id:int, category:chararray, sales_amount:float);
grouped_sales = GROUP sales_data BY category;
category_sales = FOREACH grouped_sales GENERATE group, SUM(sales_data.sales_amount);
STORE category_sales INTO 'category_sales_output' USING PigStorage(',');

In this example, Pig aggregates sales data by category and computes the total sales for each. This transformation is a common task in data warehousing and analytics, where large datasets are continuously processed for insights.

Also Read: What is the Future of Hadoop? Top Trends to Watch

The more you dive into Apache Pig and Pig Latin for data processing, the more proficient you'll become in leveraging Pig to simplify complex data transformations, enabling you to build scalable, efficient solutions across big data environments.

Conclusion

Understanding Apache Pig architecture in Hadoop is essential for anyone working with large-scale data processing. Its high-level abstraction over MapReduce, combined with the simplicity of Pig Latin, enables efficient handling of both structured and unstructured datasets. 

By mastering its key components, Grunt Shell, Parser, Optimizer, and Execution Engine, you can streamline data transformation, aggregation, and analysis tasks across Hadoop clusters. This blog has provided examples to illustrate how Apache Pig architecture in Hadoop works in various real scenarios.

How Can upGrad Help You with Apache Pig Architecture in Hadoop?

With courses covering the latest tools and techniques used in data processing, Hadoop, Analytics, upGrad provides you with the skills needed for big data analytics. 

Check out some of the top related courses:

You can also get personalized career counseling with upGrad to guide your career path or visit your nearest upGrad center and start hands-on training today! 

Unlock the power of data with our popular Data Science courses, designed to make you proficient in analytics, machine learning, and big data!

Elevate your career by learning essential Data Science skills such as statistical modeling, big data processing, predictive analytics, and SQL!

Stay informed and inspired  with our popular Data Science articles, offering expert insights, trends, and practical tips for aspiring data professionals!

Frequently Asked Questions (FAQs)

1. What is Apache Pig architecture in Hadoop?

Apache Pig architecture in Hadoop provides a high-level platform for processing large-scale data. It abstracts the complexities of MapReduce through Pig Latin scripts, enabling efficient data transformations, filtering, and analysis. Its components, Grunt Shell, Parser, Optimizer, and Execution Engine, work together to streamline distributed data processing on Hadoop clusters.

2. What is Pig in Hadoop?

Pig in Hadoop is a high-level scripting platform designed for large-scale data processing. It uses Pig Latin, a declarative data flow language, to simplify MapReduce programming. Pig allows developers to perform complex data transformations and analytics without writing extensive Java code, making it ideal for Hadoop-based big data workflows.

3. What is the use of the Pig project in Hadoop?

The Pig project in Hadoop is primarily used for batch processing and ETL tasks. It simplifies data transformation, cleansing, aggregation, and analysis of large datasets. By reducing development time and code complexity, Pig enables faster deployment of big data solutions while supporting structured, semi-structured, and unstructured data formats.

4. What is Pig philosophy in big data?

The philosophy of Pig in big data focuses on abstraction and simplicity. It emphasizes reducing coding complexity by offering a high-level language for data flow operations. Pig encourages developers to focus on business logic instead of low-level MapReduce implementation, allowing efficient processing of large-scale data with minimal programming effort.

5. What language is Apache Pig?

Apache Pig uses Pig Latin, a high-level scripting language. Pig Latin combines SQL-like syntax with procedural programming features, allowing developers to express complex data transformations easily. It simplifies tasks like filtering, grouping, joining, and aggregation, while the Pig execution engine converts these scripts into optimized MapReduce jobs for Hadoop clusters.

6. How does Apache Pig simplify data processing in Hadoop?

Apache Pig simplifies data processing by providing a high-level abstraction over MapReduce. Users write Pig Latin scripts instead of complex Java code, allowing them to perform data transformations, aggregations, and joins efficiently. The architecture automates job execution, optimization, and resource management, making Hadoop analytics faster and more accessible.

7. How do Pig Latin scripts translate into MapReduce jobs?

Pig Latin scripts are parsed by Pig’s Parser, optimized by the Optimizer, and then converted into a series of MapReduce jobs by the Execution Engine. These jobs are executed across the Hadoop cluster, ensuring distributed processing of large datasets while maintaining high performance and scalability.

8. How does Apache Pig optimize performance?

Apache Pig optimizes performance using techniques such as filter pushing, projection pruning, and combining multiple operations into single jobs. These optimizations reduce data transfer, memory usage, and execution time, making Pig highly efficient for processing large-scale datasets in Hadoop environments.

9. How does Apache Pig work with Hadoop HDFS?

Pig integrates seamlessly with Hadoop HDFS. It reads data from HDFS using the LOAD function, processes it via Pig Latin scripts, and writes results back using STORE. This distributed storage interaction allows Pig to handle massive datasets efficiently, supporting batch processing for big data analytics.

10. Can Apache Pig handle unstructured data?

Yes, Apache Pig can handle unstructured and semi-structured data like JSON, XML, text logs, and tabular datasets. Its flexible data model and Pig Latin operations enable parsing, filtering, and transformation of diverse data formats, making it highly suitable for real-world big data workflows.

11. Is Pig an ETL tool?

Yes, Pig functions as an ETL tool within Hadoop. It allows users to extract, transform, and load large datasets efficiently. While primarily designed for batch processing, Pig simplifies data cleaning, aggregation, and storage, reducing development time compared to writing raw MapReduce jobs.

12. What are the benefits of using Apache Pig over raw MapReduce code?

Pig offers simplicity, flexibility, and faster development compared to raw MapReduce. Developers can focus on data transformation logic rather than low-level coding. Pig Latin reduces hundreds of lines of Java code to a few script statements, improving readability, maintainability, and productivity in big data processing.

13. What are the key components of Apache Pig?

The key components are: Grunt Shell (interactive interface), Pig Latin Scripts (high-level data flow language), Parser (syntax validation), Optimizer (performance enhancement), and Execution Engine (translates scripts into MapReduce jobs). Together, these components streamline data processing across Hadoop clusters.

14. What is the difference between Apache Pig and MapReduce?

Apache Pig provides a high-level abstraction over MapReduce, enabling data transformations using Pig Latin instead of Java. Pig automates parsing, optimization, and job execution, making it easier and faster for developers, whereas MapReduce requires manual coding, making it complex and time-consuming.

15. What is the difference between Apache Pig and SQL?

SQL is a declarative query language for structured data in relational databases. Pig Latin is a procedural, data flow language that handles structured, semi-structured, and unstructured data. Pig is designed for distributed data processing in Hadoop, while SQL primarily works in relational database environments.

16. What are common operations in Pig Latin?

Common Pig Latin operations include LOAD, STORE, FILTER, GROUP, JOIN, FOREACH, and ORDER. These operators allow users to load data from HDFS, transform datasets, perform aggregations, join tables, and write results back, simplifying complex MapReduce tasks efficiently.

17. What are execution modes in Apache Pig?

Apache Pig supports Local Mode and MapReduce Mode. Local Mode runs scripts on a single machine, ideal for testing or small datasets. MapReduce Mode distributes processing across a Hadoop cluster, handling large-scale data efficiently with parallel execution and fault tolerance.

18. How is Apache Pig used in real-world applications?

Pig is widely used for ETL processes, log analysis, and data warehousing. It enables businesses to transform, filter, and aggregate large datasets, prepare analytics-ready data, and process semi-structured logs efficiently, all while reducing coding complexity compared to traditional MapReduce programming.

19. What types of datasets can Apache Pig process?

Apache Pig can process structured, semi-structured, and unstructured datasets. It works with tabular data, JSON, XML, logs, and other formats, providing flexible handling of diverse data types within Hadoop, making it suitable for various industries like e-commerce, finance, and telecom.

20. Why is Apache Pig important in big data?

Apache Pig is crucial in big data because it simplifies complex data transformations, supports multiple data types, reduces development time, and optimizes MapReduce jobs automatically. It enables faster insights, scalable processing, and efficient analytics, making it an essential tool in the Hadoop ecosystem.

Rohit Sharma

834 articles published

Rohit Sharma is the Head of Revenue & Programs (International), with over 8 years of experience in business analytics, EdTech, and program management. He holds an M.Tech from IIT Delhi and specializes...

Speak with Data Science Expert

+91

By submitting, I accept the T&C and
Privacy Policy

Start Your Career in Data Science Today

Top Resources

Recommended Programs

upGrad Logo

Certification

3 Months

upGrad
new course

Certification

30 Weeks

Liverpool John Moores University Logo
bestseller

Liverpool John Moores University

MS in Data Science

Double Credentials

Master's Degree

17 Months