{"id":9963,"date":"2024-09-24T14:51:39","date_gmt":"2024-09-24T12:51:39","guid":{"rendered":"https:\/\/dbdmg.polito.it\/dbdmg_web\/?p=9963"},"modified":"2025-12-17T23:07:47","modified_gmt":"2025-12-17T22:07:47","slug":"big-data-architectures-and-data-analytics-2025-2026","status":"publish","type":"post","link":"https:\/\/dbdmg.polito.it\/dbdmg_web\/2024\/big-data-architectures-and-data-analytics-2025-2026\/","title":{"rendered":"Big Data: Architectures and Data Analytics (2025\/2026)"},"content":{"rendered":"\n<h2 class=\" wp-block-heading eplus-wrapper\" id=\"general-information\">General Information<\/h2>\n\n\n\n<p class=\" eplus-wrapper\"><strong>SSD<\/strong>: ING-INF\/05 &#8211; <strong>CFU<\/strong>: 6 &#8211; <a href=\"https:\/\/didattica.polito.it\/pls\/portal30\/gap.pkg_guide.viewGap?p_cod_ins=01QYDOV&amp;p_a_acc=2025&amp;p_header=S&amp;p_lang=IT&amp;multi=N\" data-type=\"link\" data-id=\"https:\/\/didattica.polito.it\/pls\/portal30\/gap.pkg_guide.viewGap?p_cod_ins=01QYDOV&amp;p_a_acc=2025&amp;p_header=S&amp;p_lang=IT&amp;multi=N\">Link to the official Teaching Portal web page<\/a><\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Professor<\/strong>: Daniele Apiletti<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Teaching Assistant<\/strong>: Matteo Boffa<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Q&amp;A teaching&nbsp;<strong>assistance&nbsp;<\/strong>on Piazza:&nbsp;<a href=\"https:\/\/piazza.com\/polito.it\/fall2025\/01qydov\">Piazza.com\/polito.it\/fall2025\/01qydov<\/a><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\" wp-block-spacer eplus-wrapper\"><\/div>\n\n\n\n<h2 class=\" wp-block-heading eplus-wrapper\" id=\"announcements\">Announcements<\/h2>\n\n\n<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-0f1d2c\">\n<li class=\" eplus-wrapper\">Lab activities will start on Thursday 09\/10\/2025 .<\/li>\n\n\n\n<li class=\" eplus-wrapper\">We are using Piazza for class discussion. We invite all students to\u00a0<a href=\"https:\/\/piazza.com\/polito.it\/fall2025\/01qydov\">join the course Piazza<\/a>. Piazza is highly catered to getting help fast and efficiently from classmates and teachers. Rather than emailing questions to the teaching staff, students are invited to post their questions on Piazza.<\/li>\n<\/ul>\n\n\n<hr class=\" wp-block-separator has-css-opacity eplus-wrapper\"\/>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\" wp-block-spacer eplus-wrapper\"><\/div>\n\n\n\n<h2 class=\" wp-block-heading eplus-wrapper\" id=\"teaching-material\">Teaching Material<\/h2>\n\n\n\n<div class=\"wp-block-ep-tabs ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7\"><div class=\"ep_tabs_root ep_tabs_top\" data-autoplay=\"false\" data-delay=\"1000\"><div class=\"ep_tabs_header \"><a href=\"#ep_tab_wrapper__e69ce3bc-09b8-4192-b08c-a140b5ba9a48\" class=\"ep_label_main\"><span class=\"ep_label\">Introduction<\/span><\/a><a href=\"#ep_tab_wrapper__f74038b6-9df7-47eb-8308-b87c685d5cb6\" class=\"ep_label_main\"><span class=\"ep_label\">Hadoop and MapReduce<\/span><\/a><a href=\"#ep_tab_wrapper__20186641-7515-4e02-9373-971b297c2b9b\" class=\"ep_label_main\"><span class=\"ep_label\">Spark<\/span><\/a><\/div><div class=\"ep_tabs_wrapper undefined\">\n<div id=\"ep_tab_wrapper__e69ce3bc-09b8-4192-b08c-a140b5ba9a48\" class=\"ep_tab_item_wrapper ep_tab_wrapper__e69ce3bc-09b8-4192-b08c-a140b5ba9a48 undefined\"><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-537106\">\n<li class=\" eplus-wrapper\">Introduction to the course content and exam rules (slides)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Introduction to Big Data (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/01_Intro_BigData_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Big Data Architectures (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/02_Architectures_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n<\/ul><\/div>\n\n\n\n<div id=\"ep_tab_wrapper__f74038b6-9df7-47eb-8308-b87c685d5cb6\" class=\"ep_tab_item_wrapper ep_tab_wrapper__f74038b6-9df7-47eb-8308-b87c685d5cb6 undefined\"><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-54396e\">\n<li class=\" eplus-wrapper\">Introduction to Apache Hadoop and the MapReduce programming paradigm (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/03_Intro_HadoopAndMapReduce_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-6de369\">\n<li class=\" eplus-wrapper\">Interaction with HDFS and Hadoop using the command line (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/03b_HDFS_Hadoop_CommandLine_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Hadoop implementation of MapReduce (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/04_HadoopImplementationOfMapReduce_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-16a7bf\">\n<li class=\" eplus-wrapper\">BigData@Polito environment + Jupyter \u2013 How to submit MapReduce jobs on BigData@Polito (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/04b_ClusterJupyter_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">MapReduce and Hadoop \u2013 Advanced Topics: Multiple inputs, Multiple outputs, Distributed cache (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/06_AdvancedTopicsMapReduce_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">MapReduce \u2013 Design patterns \u2013 Part 1 (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/05_MapReduce_Patterns_Part1_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">MapReduce \u2013 Design patterns \u2013 Part 2 (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/07_MapReduce_Patterns_Part2_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">MapReduce \u2013 Relational Algebra\/SQL operators (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/08_SQLOperators_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/li>\n<\/ul><\/div>\n\n\n\n<div id=\"ep_tab_wrapper__20186641-7515-4e02-9373-971b297c2b9b\" class=\"ep_tab_item_wrapper ep_tab_wrapper__20186641-7515-4e02-9373-971b297c2b9b undefined\"><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-777d74\">\n<li class=\" eplus-wrapper\">Introduction to Apache Spark (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/10_SparkIntroduction_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>) <ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-91de16\">\n<li class=\" eplus-wrapper\">How to submit Spark applications (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/10b_SparkSubmit_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">How to use Jupyter Notebooks for your Spark applications (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/03\/10c_JupyterNotebooks_DistributedBigDataNB.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">You can install PySpark and JupyterLab using\u00a0<strong>Conda\/Miniconda\/pip<\/strong>\u00a0(<a href=\"https:\/\/github.com\/dbdmg\/pyspark-install\" target=\"_blank\" rel=\"noreferrer noopener\">instructions here<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">RDD-based programs RDDs<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-311fe6\">\n<li class=\" eplus-wrapper\">Creation, basic transformations, and actions (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/11_SparkRDDBasedProgramming_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>) &#8211; Notebook with some examples from the slides (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/FirstExamplesNotebook.zip\">FirstExamplesNotebook.zip<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Key-value pair RDDs: transformations and actions on PairRDDs (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/12_SparkPairRDD_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-8b7019\">\n<li class=\" eplus-wrapper\">Inner join, left outer join, right outer join, full outer join, and \u201cNOT IN\u201d with PairRDDs: Examples \u2013 Notebook (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/JoinsRDD.zip\" target=\"_blank\" rel=\"noreferrer noopener\">JoinsRDD.zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">DoubleRDDs (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/13_SparkDoubleRDD_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Advanced Topics: Cache, accumulators, broadcast variables (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/14_SparkRDDBasedProgramming_AdvancedTopics_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-2eaac6\">\n<li class=\" eplus-wrapper\">Notebooks with some examples (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/ExamplesAccumulatorPython.zip\">ExamplesAccumulatorPython.zip<\/a>)<\/li>\n<\/ul><\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Spark SQL, Datasets, and DataFrames (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/15_SparkSQL_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-f15ce0\">\n<li class=\" eplus-wrapper\">Spark SQL \u2013 Join examples (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/SparkSQLSimpleExamples.zip\" target=\"_blank\" rel=\"noreferrer noopener\">ExamplesSparkSQLJoins.zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Spark MLlib<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-df6c63\">\n<li class=\" eplus-wrapper\">Introduction to MLlib (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/16a_SparkMLlib_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Classification of structured data and textual data (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/16b_SparkMLlib_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-f5971d\">\n<li class=\" eplus-wrapper\">Classification example code (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ExampleClassificationMLlib.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Regression (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/18d_SparkMLlib_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-0a8cc9\">\n<li class=\" eplus-wrapper\">Linear regression example code (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ExampleRegressionMLlib.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Clustering of structured data (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/16c_SparkMLlib_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-85c45d\">\n<li class=\" eplus-wrapper\">Clustering example code (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ExampleClusteringMLlib.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Itemset and Association rule mining (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/18e_SparkMLlib_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-285dbc\">\n<li class=\" eplus-wrapper\">Itemset and Association rule mining example code (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ExampleItemsetMLlib.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a>)<\/li>\n<\/ul><\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Spark Streaming (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/21_SparkStreaming_BigData_NewStyle.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">slides<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-5b3de9\">\n<li class=\" eplus-wrapper\">Simple examples \u2013 Jupyter notebooks (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/SparkSteamingExamples.zip\" target=\"_blank\" rel=\"noreferrer noopener\">SparkSteamingExamples.zip<\/a>)<\/li>\n<\/ul><\/li>\n<\/ul><\/div>\n<\/div><style>.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_tabs_header {\n                \n                flex-basis: 15% ;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_tabs_root {\n                \n                gap: 0px ;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_label {\n                \n                color: #1e1e1e;\nfont-size: 17px ;\n            }\n            \n\n        \n\n         \n\n        \n        \n      .eplus_styles  .ep_label_main:hover .ep_label {\n        color: #ffffff;\n      }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_sub_label {\n                \n                color: #1e1e1e;\nfont-size: 15px ;\n            }\n            \n\n        \n\n         \n\n        \n        \n      .eplus_styles  .ep_label_main:hover .ep_sub_label {\n        color: #ffffff;\n      }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_active_tab .ep_label {\n                \n                color: #ffffff;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_active_tab .ep_sub_label {\n                \n                color: #ffffff;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_label_main {\n                \n                background-image: linear-gradient(#f0f0f0, #f0f0f0);\n            }\n            \n\n        \n\n         \n\n        \n            .eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_label_main:hover {\n                background-image: linear-gradient(#007cba, #007cba);\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_active_tab {\n                \n                background-image: linear-gradient(#007cba, #007cba);\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_tab_item_wrapper {\n                \n                background-image: linear-gradient(#f0f0f0, #f0f0f0);\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_label_main {\n                \n                padding-top: 15px ;\npadding-right: 15px ;\npadding-bottom: 15px ;\npadding-left: 15px ;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_tab_item_wrapper {\n                \n                padding-top: 15px ;\npadding-right: 15px ;\npadding-bottom: 15px ;\npadding-left: 15px ;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_tabs_header {\n                \n                gap: 5px ;\n            }.eplus_styles .ep_tabs_wrapper__bd5ccb41-26be-47c4-add1-529132f491c7 .ep_tabs_header {\n                \n                justify-content: flex-start;\n            }<\/style><\/div><\/div>\n\n\n\n<h2 class=\" wp-block-heading eplus-wrapper\">Exercises<\/h2>\n\n\n\n<p class=\" eplus-wrapper\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#fc0303\" class=\"has-inline-color\">If you use your PC to write and run your code, import the projects based on Maven (those projects can be run locally).<br>If you use the PC available in the LAB, import the projects with libraries (those projects cannot be run locally but only on the cluster exporting the project&#8217;s jar file). Refer to the <a href=\"#laboratory-material\" data-type=\"internal\" data-id=\"#laboratory-material\">Laboratory Material<\/a> section for more information.<\/mark><\/p>\n\n\n\n<p class=\" eplus-wrapper\"><\/p>\n\n\n\n<div class=\"wp-block-ep-tabs ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440\"><div class=\"ep_tabs_root ep_tabs_top\" data-autoplay=\"false\" data-delay=\"1000\"><div class=\"ep_tabs_header \"><a href=\"#ep_tab_wrapper__1e85f2e1-1820-48f9-92a8-39b71cf8d4ab\" class=\"ep_label_main\"><span class=\"ep_label\">MapReduce<\/span><\/a><a href=\"#ep_tab_wrapper__9e45c079-70d0-4eb2-9839-a016ccf217aa\" class=\"ep_label_main\"><span class=\"ep_label\">Spark<\/span><\/a><\/div><div class=\"ep_tabs_wrapper undefined\">\n<div id=\"ep_tab_wrapper__1e85f2e1-1820-48f9-92a8-39b71cf8d4ab\" class=\"ep_tab_item_wrapper ep_tab_wrapper__1e85f2e1-1820-48f9-92a8-39b71cf8d4ab undefined\"><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-93872e\">\n<li class=\" eplus-wrapper\"><strong>MapReduce exercises (<a rel=\"noreferrer noopener\" href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/01_MapReduce_Exercises_BigData_NewStyle.pdf\" target=\"_blank\">slides<\/a>)<\/strong><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-b5b2ed\">\n<li class=\" eplus-wrapper\">Solutions of Exercises 1-29 (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/SolutionsExMapReduce.zip\" target=\"_blank\" rel=\"noreferrer noopener\">SolutionsExMapReduce.zip<\/a>)<\/li>\n<\/ul><\/li>\n<\/ul><\/div>\n\n\n\n<div id=\"ep_tab_wrapper__9e45c079-70d0-4eb2-9839-a016ccf217aa\" class=\"ep_tab_item_wrapper ep_tab_wrapper__9e45c079-70d0-4eb2-9839-a016ccf217aa undefined\"><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-a17028\">\n<li class=\" eplus-wrapper\"><strong>Spark RDD-based exercises (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/02_Spark_Exercises_BigDataNB.pdf\">slides<\/a>)<\/strong><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-f3f2ce\">\n<li class=\" eplus-wrapper\">Example data \u2013 One folder with (few) data for each exercise (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/ExampleDataSpark.zip\" target=\"_blank\" rel=\"noreferrer noopener\">ExampleDataSpark.zip<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Solutions of Exercises 30-46 (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/03\/SolutionsExSpark30_46.zip\">SolutionsExSpark30-46.zip<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-88d1d3\">\n<li class=\" eplus-wrapper\">Solution of Ex.44 based on Left Outer Join (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ex44LeftOuterJoin.zip\">ex44LeftOuterJoin.zip<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Solution of Ex.46 based on SparkSQL API + RDD groupByKey &#8211; Example to show how to create and manage &#8220;static windows&#8221; with almost only Spark SQL APIs (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ex46_DF.zip\">ex46_DF.zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\">Solutions of Exercises from 32 to 38 and 44 based on Spark SQL (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/SolSparkSQL32-38_44.zip\" target=\"_blank\" rel=\"noreferrer noopener\">SolSparkSQL32-38_44.zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\"><strong>Spark SQL-based exercises (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/02_Spark_ExerciseSparkSQLNB.pdf\">slides<\/a>)<\/strong><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-68b485\">\n<li class=\" eplus-wrapper\">Example data &#8211; One folder with (few) data for each exercise (\ud83d\uddc3<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/ExSparkSQLData.zip\">\ufe0fExampleDataSparkSQL.zip<\/a>)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Solutions of Exercises 47-50 (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/SparkNotebooksSol47_50.zip\">SolutionsExSpark47-50.zip<\/a>)<\/li>\n<\/ul><\/li>\n\n\n\n<li class=\" eplus-wrapper\"><strong>Spark streaming exercises (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/05_SparkStreaming_Exercises_BigDataNB.pdf\">slides<\/a>)<\/strong><ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-591a5f\">\n<li class=\" eplus-wrapper\">Solutions of Exercises 58-65 (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/SparkNotebooksSol58_65.zip\">SolutionsSparkStreaming58_65.zip<\/a>)<\/li>\n<\/ul><\/li>\n<\/ul><\/div>\n<\/div><style>.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_tabs_header {\n                \n                flex-basis: 15% ;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_tabs_root {\n                \n                gap: 0px ;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_label {\n                \n                color: #1e1e1e;\nfont-size: 17px ;\n            }\n            \n\n        \n\n         \n\n        \n        \n      .eplus_styles  .ep_label_main:hover .ep_label {\n        color: #ffffff;\n      }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_sub_label {\n                \n                color: #1e1e1e;\nfont-size: 15px ;\n            }\n            \n\n        \n\n         \n\n        \n        \n      .eplus_styles  .ep_label_main:hover .ep_sub_label {\n        color: #ffffff;\n      }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_active_tab .ep_label {\n                \n                color: #ffffff;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_active_tab .ep_sub_label {\n                \n                color: #ffffff;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_label_main {\n                \n                background-image: linear-gradient(#f0f0f0, #f0f0f0);\n            }\n            \n\n        \n\n         \n\n        \n            .eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_label_main:hover {\n                background-image: linear-gradient(#007cba, #007cba);\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_active_tab {\n                \n                background-image: linear-gradient(#007cba, #007cba);\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_tab_item_wrapper {\n                \n                background-image: linear-gradient(#f0f0f0, #f0f0f0);\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_label_main {\n                \n                padding-top: 15px ;\npadding-right: 15px ;\npadding-bottom: 15px ;\npadding-left: 15px ;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_tab_item_wrapper {\n                \n                padding-top: 15px ;\npadding-right: 15px ;\npadding-bottom: 15px ;\npadding-left: 15px ;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_tabs_header {\n                \n                gap: 5px ;\n            }.eplus_styles .ep_tabs_wrapper__17007881-ffcd-4cab-a19f-718e85af4440 .ep_tabs_header {\n                \n                justify-content: flex-start;\n            }<\/style><\/div><\/div>\n\n\n\n\n\n<h2 class=\" wp-block-heading eplus-wrapper\" id=\"laboratory-material\">Laboratory Material<\/h2>\n\n\n\n<p class=\" eplus-wrapper\"><span><mark style=\"font-weight: bold; background-color: rgba(0, 0, 0, 0); color: rgb(253, 2, 2);\" class=\"has-inline-color\">Lab activities will start on Thursday 09\/10\/2025  at <strong>LAIB1T<\/strong>.<\/mark><\/span><\/p>\n\n\n\n<figure class=\" wp-block-table eplus-wrapper\"><table><tbody><tr><td><strong>Student Group<\/strong><\/td><td><strong>Time<\/strong><\/td><td><strong>Room<\/strong><\/td><\/tr><tr><td>Team A: Students from A to L<\/td><td>Thursday, 08:30-10:00<\/td><td>LAIB 1T<\/td><\/tr><tr><td>Team B: Students from M to Z<\/td><td>Thursday, 10:00-11:30<\/td><td>LAIB 1T<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">We suggest the use of Visual Studio Code for the lab sessions. For the configuration instructions, refer to this \ud83d\udcd8<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/BigData_labs-VSCode_guide.pdf\">guide<\/a>.<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Windows users only:<\/strong> You must configure the <strong>winutils<\/strong> (\ud83d\uddc3\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/winutils.zip\" target=\"_blank\" rel=\"noreferrer noopener\">winutils.zip<\/a>) and set up some environmental variables. Follow this \ud83d\udcd8<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/ConfigureWindowsEnviroment.pdf\">extra guide<\/a> for the complete configuration. <\/p>\n\n\n\n<p class=\" eplus-wrapper\">All the Laboratory materials are available in multiple versions. The version with libraries is <strong>the only one<\/strong> you can use on the Lab computers (without running locally). All the other versions are Maven projects, so you can use them locally on your laptop, depending on your OS and the cluster. The legend for the buttons is the following:<\/p>\n\n\n\n<p class=\" eplus-wrapper\">\ud83d\udcda<strong>lib:<\/strong> with libraries, \ud83d\udc27<strong>mavU:<\/strong>  Maven project for Linux\/MacOS, \ud83e\ude9f<strong>mavW:<\/strong> Maven project for Windows (Hadoop projects only)<\/p>\n\n\n<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-7581c4\">\n<li class=\" eplus-wrapper\">Basic project for <strong>MapReduce<\/strong> applications (\ud83d\udcda<strong><a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/Lab2_Skeleton_with_libraries_vscode.zip\"><strong>lib<\/strong><\/a><\/strong>, \ud83d\udc27<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/MapReduceBasicProject.zip\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>mavU<\/strong><\/a>, \ud83e\ude9f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/09\/MapReduceBasicProjectWindows.zip\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>mavW<\/strong><\/a>) <\/li>\n\n\n\n<li class=\" eplus-wrapper\">Local PySpark installation guide <a href=\"https:\/\/github.com\/dbdmg\/pyspark-install\/tree\/master\">here<\/a><\/li>\n<\/ul>\n\n\n<details class=\"wp-block-details eplus-wrapper is-layout-flow wp-block-details-is-layout-flow\"><summary><\/summary><\/details>\n\n\n\n<div class=\"wp-block-ep-tabs ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8\"><div class=\"ep_tabs_root ep_tabs_top\" data-autoplay=\"false\" data-delay=\"1000\"><div class=\"ep_tabs_header \"><a href=\"#ep_tab_wrapper__b20cfa79-7ce4-4be2-8069-0b74c3bfaeb3\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 1<\/span><\/a><a href=\"#ep_tab_wrapper__4742473a-0cb5-407f-9100-a4477c31e7df\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 2<\/span><\/a><a href=\"#ep_tab_wrapper__ad381dd0-29ae-4866-a029-213cf835a3c4\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 3<\/span><\/a><a href=\"#ep_tab_wrapper__5596bf4d-bcc6-4d13-bec5-dd757bfdbde8\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 4<\/span><\/a><a href=\"#ep_tab_wrapper__b0971529-0de4-42bd-9e41-e788baadc12c\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 5<\/span><\/a><a href=\"#ep_tab_wrapper__1f65a027-74e5-4aed-abe5-f3622883ceb0\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 6<\/span><\/a><a href=\"#ep_tab_wrapper__e54368a3-04ef-4b7b-b891-bc5ade9c2461\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 7<\/span><\/a><a href=\"#ep_tab_wrapper__ae4e423f-2b66-4341-8bad-c46f24fd31b3\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 8<\/span><\/a><a href=\"#ep_tab_wrapper__7242054f-2ef6-47a6-8c7b-b9b545d92155\" class=\"ep_label_main\"><span class=\"ep_label\">Lab 9<\/span><\/a><\/div><div class=\"ep_tabs_wrapper undefined\">\n<div id=\"ep_tab_wrapper__b20cfa79-7ce4-4be2-8069-0b74c3bfaeb3\" class=\"ep_tab_item_wrapper ep_tab_wrapper__b20cfa79-7ce4-4be2-8069-0b74c3bfaeb3 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab1: Hadoop and MapReduce<\/strong><\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/10\/Lab1_BigData_vscode.pdf\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/10\/Lab1_BigData_vscode.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a>)<br>Basic project and small example data set \ud83d\udcda<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/04\/Lab1_BigData_with_libraries_vscode.zip\">lib<\/a>, \ud83d\udc27<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab1.zip\" target=\"_blank\" rel=\"noreferrer noopener\">mavU<\/a>, \ud83e\ude9f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab1Windows.zip\" target=\"_blank\" rel=\"noreferrer noopener\">mavW<\/a>)<br>Bigger data set: finefoods_text.txt (\ud83d\uddc3\ufe0f<a href=\"https:\/\/www.dropbox.com\/s\/fswdiblx15mhmyo\/finefoods_text.zip?dl=0\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Solution (Bonus track \ud83d\udc27<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab1_SolBonusMvn.zip\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>mavU<\/strong><\/a>)<\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__4742473a-0cb5-407f-9100-a4477c31e7df\" class=\"ep_tab_item_wrapper ep_tab_wrapper__4742473a-0cb5-407f-9100-a4477c31e7df undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab2: Filter with Hadoop MapReduce and Frequency Count<\/strong><\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/10\/Lab2_BigData_vscode.pdf\" data-type=\"attachment\" data-id=\"12852\">pdf<\/a>)<br>Skeleton Hadoop Projects (\ud83d\udcda<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/Lab2_Skeleton_with_libraries_vscode.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/Lab2_Skeleton_with_libraries_vscode.zip\">lib<\/a>, \ud83d\udc27<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab2_Skeleton.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab2_Skeleton.zip\">mavU<\/a>, \ud83e\ude9f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab2Windows_Skeleton.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab2Windows_Skeleton.zip\">mavW<\/a>)<br>Dataset (only if you run locally): OutputLab1 (<a href=\"https:\/\/www.dropbox.com\/s\/fswdiblx15mhmyo\/finefoods_text.zip?dl=0\" target=\"_blank\" rel=\"noreferrer noopener\">\ud83d\uddc3<\/a>\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/OutputFolderLab1.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/OutputFolderLab1.zip\">zip<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Solutions<\/strong>:<br>&#8211; <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/Lab2_SolTask1_processing_2024_2025.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/Lab2_SolTask1_processing_2024_2025.zip\">Task 1<\/a><br>&#8211; <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/Lab2_SolTask2_2024_2025.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/10\/Lab2_SolTask2_2024_2025.zip\">Task 2<\/a><\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__ad381dd0-29ae-4866-a029-213cf835a3c4\" class=\"ep_tab_item_wrapper ep_tab_wrapper__ad381dd0-29ae-4866-a029-213cf835a3c4 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab3: Frequently bought\/reviewed together with Hadoop and MapReduce<\/strong><\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/10\/Lab3_BigData_updated.pdf\">pdf<\/a>)<br>Skeleton Hadoop Projects (\ud83d\udcda<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/Lab3_Skeleton_with_libraries_vscode.zip\">lib<\/a>, \ud83d\udc27<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab3_Skeleton.zip\">mavU<\/a>, \ud83e\ude9f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab3Windows_Skeleton.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab3Windows_Skeleton.zip\">mavW<\/a>)<br>Dataset (only if you run locally): AmazonReviews (<a href=\"https:\/\/www.dropbox.com\/s\/fswdiblx15mhmyo\/finefoods_text.zip?dl=0\" target=\"_blank\" rel=\"noreferrer noopener\">\ud83d\uddc3<\/a>\ufe0f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/AmazonTransposedDataset_Sample.txt\">txt<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong><strong>Solutions<\/strong>:<\/strong><br>&#8211; <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab3_Sol.zip\">Code<\/a> (The second solution <strong>MUST NOT BE USED<\/strong> because it is highly inefficient.)<br>&#8211; <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab3_DraftSolution_BigData_NewStyle.pdf\">Slides<\/a> (Guidelines on solution codes)<\/p>\n\n\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__5596bf4d-bcc6-4d13-bec5-dd757bfdbde8\" class=\"ep_tab_item_wrapper ep_tab_wrapper__5596bf4d-bcc6-4d13-bec5-dd757bfdbde8 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab 4: Normalized ratings for product recommendations with Hadoop MapReduce<\/strong><\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/10\/Lab4_2025_2026-1.pdf\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/10\/Lab4_2025_2026-1.pdf\">pdf<\/a>)<br>Skeleton Hadoop Projects (\ud83d\udcda<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/Lab4_Skeleton_with_libraries_vscode.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/Lab4_Skeleton_with_libraries_vscode.zip\">lib<\/a>, \ud83d\udc27<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab4_Skeleton.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab4_Skeleton.zip\">mavU<\/a>, \ud83e\ude9f<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab4Windows_Skeleton.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/Lab4Windows_Skeleton.zip\">mavW<\/a>)<br>Sample file: AmazonTransposedDataset (\ud83d\uddc3<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/ReviewsSample.csv\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/10\/ReviewsSample.csv\">csv<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong><strong>Solutions<\/strong>:<\/strong><br><a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/Lab4_Sol.zip\" target=\"_blank\" rel=\"noreferrer noopener\">Lab4_Sol.zip<\/a><\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__b0971529-0de4-42bd-9e41-e788baadc12c\" class=\"ep_tab_item_wrapper ep_tab_wrapper__b0971529-0de4-42bd-9e41-e788baadc12c undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab 5: Filter data and compute basic statistics with Apache Spark<\/strong><\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab5_BigData_2025_2026.pdf\">pdf<\/a>)<br>Input file &#8211; also in the Cluster (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/SampleLocalFile.csv\">OutputLab1.csv<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Solutions:<\/strong><br><a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab5_BigData_2025_2026_sol.zip\">Lab5_Sol.zip<\/a><\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__1f65a027-74e5-4aed-abe5-f3622883ceb0\" class=\"ep_tab_item_wrapper ep_tab_wrapper__1f65a027-74e5-4aed-abe5-f3622883ceb0 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab 6: <\/strong>Frequently bought\/reviewed together with Apache Spark<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem Specification (\ud83d\udcc4<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab6_BigData_2025_2026.pdf\">pdf<\/a>)<br>Sample file (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/ReviewsSample.csv\" target=\"_blank\" rel=\"noreferrer noopener\">ReviewsSample.csv<\/a>)<br>Expected output \u2013 Task 1 (if input is Reviews.csv) (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/outputTask1Lab6.zip\" target=\"_blank\" rel=\"noreferrer noopener\">outputTask1Lab6.zip<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Solution:<\/strong> <br><a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab6_BD_Sol.zip\" target=\"_blank\" rel=\"noreferrer noopener\">Lab6_Sol.zip<\/a><\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__e54368a3-04ef-4b7b-b891-bc5ade9c2461\" class=\"ep_tab_item_wrapper ep_tab_wrapper__e54368a3-04ef-4b7b-b891-bc5ade9c2461 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab 7<\/strong>: Bike sharing data analysis<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4 <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/Lab7_BigData_2024_2025.pdf\">pdf<\/a>)<br>Sample data (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/sampleData.zip\" target=\"_blank\" rel=\"noreferrer noopener\">sampleData.zip<\/a>)<br>Example KML file (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/exampleKML.zip\" target=\"_blank\" rel=\"noreferrer noopener\">exampleKML.zip<\/a>)<br><strong>Expected output<\/strong>:<br>&#8212; Execution on sample data (sampleData\/registerSample.csv and sampleData\/stations.csv) and minimum criticality threshold = 0.4 (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/resSampleData0.4-1.txt\" target=\"_blank\" rel=\"noreferrer noopener\">part-00000<\/a>)<br>&#8212; Execution on complete data (\/share\/students\/bigdata\/Dati\/Lab7\/datiCompleti\/register.csv and \/share\/students\/bigdata\/Dati\/Lab7\/datiCompleti\/\/stations.csv) and minimum criticality threshold = 0.6 (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/resAllData0.6-1.txt\" target=\"_blank\" rel=\"noreferrer noopener\">part-00000<\/a>)<br><strong>Solution<\/strong>:<br>Guidance slides: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab-7-\u2013-Critical-Timeslot-Detection-.pptx\" data-type=\"attachment\" data-id=\"13168\">Lab7 &#8211; Critical Timeslot detection<\/a><br>Solution: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/04\/Lab7_DBD_Sol.zip\">Lab7_Sol.zip<\/a><\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__ae4e423f-2b66-4341-8bad-c46f24fd31b3\" class=\"ep_tab_item_wrapper ep_tab_wrapper__ae4e423f-2b66-4341-8bad-c46f24fd31b3 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab 8<\/strong>: Bike sharing data analysis based on Spark SQL<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4 <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab8_BigData_2025_2026.pdf\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/11\/Lab8_BigData_2025_2026.pdf\">pdf<\/a>)<br>Sample data (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/sampleData.zip\" data-type=\"link\" data-id=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/11\/sampleData.zip\">sampleData.zip<\/a>)<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><strong>Solution:<\/strong> <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/04\/Lab8_DBD_Sol.zip\">Lab8_Sol.zip<\/a><\/p>\n<\/div>\n\n\n\n<div id=\"ep_tab_wrapper__7242054f-2ef6-47a6-8c7b-b9b545d92155\" class=\"ep_tab_item_wrapper ep_tab_wrapper__7242054f-2ef6-47a6-8c7b-b9b545d92155 undefined\">\n<p class=\" eplus-wrapper\"><strong>Lab 9<\/strong>: A classification pipeline with MLlib + Spark SQL<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Problem specification (\ud83d\udcc4 <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/12\/Lab9_BigData_2025_2026.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a>)<br>Sample file with 100 reviews (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/12\/ReviewsSample.csv\" target=\"_blank\" rel=\"noreferrer noopener\">ReviewsSample.csv<\/a>)<br>Template (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2025\/12\/Lab9_template25_26.zip\">Lab9_template.zip<\/a>)<br>Bigger file with all reviews (<a href=\"http:\/\/dbdmg.polito.it\/Reviews.zip\">Reviews.zip<\/a>)<\/p>\n<\/div>\n<\/div><style>.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_tabs_header {\n                \n                flex-basis: 15% ;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_tabs_root {\n                \n                gap: 0px ;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_label {\n                \n                color: #1e1e1e;\nfont-size: 17px ;\n            }\n            \n\n        \n\n         \n\n        \n        \n      .eplus_styles  .ep_label_main:hover .ep_label {\n        color: #ffffff;\n      }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_sub_label {\n                \n                color: #1e1e1e;\nfont-size: 15px ;\n            }\n            \n\n        \n\n         \n\n        \n        \n      .eplus_styles  .ep_label_main:hover .ep_sub_label {\n        color: #ffffff;\n      }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_active_tab .ep_label {\n                \n                color: #ffffff;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_active_tab .ep_sub_label {\n                \n                color: #ffffff;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_label_main {\n                \n                background-image: linear-gradient(#f0f0f0, #f0f0f0);\n            }\n            \n\n        \n\n         \n\n        \n            .eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_label_main:hover {\n                background-image: linear-gradient(#007cba, #007cba);\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_active_tab {\n                \n                background-image: linear-gradient(#007cba, #007cba);\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_tab_item_wrapper {\n                \n                background-image: linear-gradient(#f0f0f0, #f0f0f0);\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_label_main {\n                \n                padding-top: 15px ;\npadding-right: 15px ;\npadding-bottom: 15px ;\npadding-left: 15px ;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_tab_item_wrapper {\n                \n                padding-top: 15px ;\npadding-right: 15px ;\npadding-bottom: 15px ;\npadding-left: 15px ;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_tabs_header {\n                \n                gap: 5px ;\n            }.eplus_styles .ep_tabs_wrapper__40aba9d8-7a02-4ee2-85be-4bde9b1e58b8 .ep_tabs_header {\n                \n                justify-content: flex-start;\n            }<\/style><\/div><\/div>\n\n\n\n<h2 class=\" wp-block-heading eplus-wrapper\" id=\"exam-examples\">Exam examples<\/h2>\n\n\n\n<p class=\" eplus-wrapper\">Since academic year 2022\/23, the exam is <strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f30a0a\" class=\"has-inline-color\">open book<\/mark><\/strong>.<\/p>\n\n\n\n<figure class=\" wp-block-table eplus-wrapper\"><table><tbody><tr><td><strong>Exams<\/strong><\/td><td><strong>Solutions<\/strong><\/td><\/tr><tr><td>Spark Streaming \u2013 Examples of multiple choice questions (<a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/ExamplesMultipleChoiceQuestions_Python.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a>) <br><strong>&#8211; Python-based version &#8211; Updated on December 18, 2024<\/strong><\/td><td>Question 1: (c)<br>Question 2: (d)<br>Question 3: (b)<\/td><\/tr><tr><td>September 12, 2024: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/BigData_Exam_20240912_v2.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (a)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/20240912.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong><\/td><\/tr><tr><td>June 20, 2024: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/06\/BigData_Exam_20240620.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (a)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/DraftSolPythonExam20240620.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong><\/td><\/tr><tr><td>February 19, 2024: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/02\/BigData_Exam_2024-02-19.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (a)<br>Question 2: (b)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/DraftSolPythonExam20240219.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong><\/td><\/tr><tr><td>February 5, 2024: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/02\/BigData_Exam_2024-02-05.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (a)<br>Question 2: (b)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/DraftSolPythonExam20240205.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong> <br><strong>A  solution based on Spark SQL is available for this exam<\/strong><\/td><\/tr><tr><td>September 21, 2023: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/01\/BigData_Exam_20230921.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (a)<br>Question 2: (b)<\/td><\/tr><tr><td>June 21, 2023: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/01\/BigData_Exam_20230621.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (c)<br>Question 2: (d)<\/td><\/tr><tr><td>February 15, 2023: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/06\/BDP_Exam20230215.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (c)<br>Question 2: (b)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/11\/DraftSolPythonExam20230215.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong> <br><strong>A  solution based on Spark SQL is available for this exam<\/strong><\/td><\/tr><tr><td>February 2, 2023: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/06\/BDP_Exam20230202_finale.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (d)<br>Question 2: (d)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/DraftSolPythonExam20230202.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong> <br><strong>A  solution based on Spark SQL is available for this exam<\/strong><\/td><\/tr><tr><td>September 6, 2022: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/09\/BD_Exam20220906.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (c)<br>Question 2: (d)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/DraftSolPythonExam20220906.zip\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong> <br><strong>A  solution based on Spark SQL is available for this exam<\/strong><\/td><\/tr><tr><td>July 4, 2022: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/07\/BD_Exam20220704.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (c)<br>Question 2: (d)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/DraftSolPythonExam20220704.zip\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong><\/td><\/tr><tr><td>February 21, 2022: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/02\/BD_Exam20220221_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (d)<br>Question 2: (b)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/DraftSolPythonExam20220221.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong> <br><strong>A  solution based on Spark SQL is available for this exam<\/strong><\/td><\/tr><tr><td>February 2, 2022: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2022\/02\/BD_Exam20220202_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (d)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2024\/12\/DraftSolPythonExam20220202.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a> &#8211; <strong>Spark &#8211; Python-based solution<\/strong><\/td><\/tr><tr><td>June 30, 2021: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2021\/12\/BD_Exam20210630.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (a)<br>Question 2: (c)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2021\/07\/DraftSolutionExam20210630.zip\">zip<\/a><\/td><\/tr><tr><td>February 5, 2021: <a href=\"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-content\/uploads\/2023\/10\/BD_Exam20210205.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (c)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2021\/02\/DraftSolutionExam20210205.zip\">zip<\/a><\/td><\/tr><tr><td>September 17, 2020: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2020\/09\/BD_Exam20200917.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (d)<br>Question 2: (c)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2020\/09\/DraftSolutionExam20120917.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>July 16, 2020: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2020\/07\/BD_Exam20200716.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (b) \u2013 Note that there are two actions; hence, the input file is read twice.<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2020\/07\/DraftSolutionExam20120716.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>July 2, 2020: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2020\/07\/BD_Exam20200702.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (a)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2020\/07\/DraftSolutionExam20120702.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>July 18, 2019: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/07\/Exam20190718_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (b)<br>Question 2: (b)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/07\/DraftSolutionExam20190718_v1.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>July 2, 2019: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/07\/Exam20190702_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (a)<br>Question 2: (b)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/07\/BozzaSoluzionev1_20190702.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>February 15, 2019: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/03\/Exam20190215_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (d)<br>Question 2: (c)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/06\/DraftSolutionv1_20190215.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>September 3, 2018: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2018\/09\/Exam20180903_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (d)<br>Question 2: (c)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2019\/06\/DraftSolutionv1_201809003.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>July 16, 2018: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2018\/07\/Exam20180716_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (d)<br>Question 2: (a)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2018\/07\/DraftSolutionv1_20180716.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><tr><td>June 26, 2018: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2018\/06\/Exam20180626_v1.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/td><td>Question 1: (c)<br>Question 2: (c)<br>Source code: <a href=\"https:\/\/dbdmg.polito.it\/wordpress\/wp-content\/uploads\/2018\/06\/DraftSolutionv1.zip\" target=\"_blank\" rel=\"noreferrer noopener\">zip<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\" wp-block-heading eplus-wrapper\" id=\"additional-material\">Additional material<\/h3>\n\n\n<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-56c93a\">\n<li class=\" eplus-wrapper\">Slides and screencasts about Java (kindly provided by prof. Torchiano) (<a href=\"http:\/\/dbdmg.polito.it\/~paolo\/JavaMaterials\/02JEY%20-%20Object%20Oriented%20Programming.html\">link<\/a>)<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-0d7933\">\n<li class=\" eplus-wrapper\">Suggested slides\/lectures for those students who have never used Java<ul class=\" wp-block-list eplus-wrapper eplus-styles-uid-8194a1\">\n<li class=\" eplus-wrapper\">OO Paradigm and UML (The UML part is not mandatory)<\/li>\n\n\n\n<li class=\" eplus-wrapper\">The Java Environment<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Java Basic Features<\/li>\n\n\n\n<li class=\" eplus-wrapper\">Java Inheritance<\/li>\n<\/ul><\/li>\n<\/ul><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-buttons eplus-wrapper is-layout-flex wp-block-buttons-is-layout-flex\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>General Information SSD: ING-INF\/05 &#8211; CFU: 6 &#8211; Link to the official Teaching Portal web page Professor: Daniele Apiletti Teaching Assistant: Matteo Boffa Q&amp;A teaching&nbsp;assistance&nbsp;on Piazza:&nbsp;Piazza.com\/polito.it\/fall2025\/01qydov Announcements Teaching Material Exercises If you use your PC to write and run your code, import the projects based on Maven (those projects can &hellip;<\/p>\n","protected":false},"author":6,"featured_media":1517,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"editor_plus_copied_stylings":"{}","footnotes":""},"categories":[37],"tags":[],"class_list":["post-9963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-courses"],"_links":{"self":[{"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/posts\/9963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/comments?post=9963"}],"version-history":[{"count":67,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/posts\/9963\/revisions"}],"predecessor-version":[{"id":13479,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/posts\/9963\/revisions\/13479"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/media\/1517"}],"wp:attachment":[{"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/media?parent=9963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/categories?post=9963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbdmg.polito.it\/dbdmg_web\/wp-json\/wp\/v2\/tags?post=9963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}