{"nbformat":4,"nbformat_minor":0,"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.7.3"},"colab":{"provenance":[{"file_id":"11cUeITEsvv-c4YBU0ZmYqzrUlgG0XIeq","timestamp":1704762902775},{"file_id":"1CqWY4pk7_VFxi8K8v4asr18ed0Hs8FVA","timestamp":1578441204356}],"machine_shape":"hm"}},"cells":[{"cell_type":"markdown","metadata":{"id":"GTwDFnjHMk25"},"source":["# CS246 - Colab 0\n","## Spark Tutorial\n","\n","In this tutorial you will learn how to use [Apache Spark](https://spark.apache.org) in local mode on a Colab enviroment.\n","\n","Credits to [Tiziano Piccardi](http://piccardi.me/) for his Spark Tutorial used in the Applied Data Analysis class at EPFL."]},{"cell_type":"markdown","metadata":{"id":"eXQzA01OS_yQ"},"source":["### Setup"]},{"cell_type":"markdown","metadata":{"id":"AbYZoVVWOZA5"},"source":["Let's setup Spark on your Colab environment.  Run the cell below!"]},{"cell_type":"code","metadata":{"id":"dhzk3GE6S9RC","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736824361583,"user_tz":480,"elapsed":33781,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"71c8f39c-3370-4bb7-ccc4-f90aac5acef2"},"source":["!pip install pyspark\n","!pip install -U -q PyDrive2\n","#the output 'xxx is not a symbolic link' will not affect your implementation or execution\n","#to fix 'xxx is not a symbolic link', you can uncomment the lines starting from !mv xxxx\n","#you may need to replace xxx.11 with the correct version if other errors come up after colab update\n","#to get the correct version, use !ls /usr/local/lib to find out\n","!mv /usr/local/lib/libtbbmalloc_proxy.so.2 /usr/local/lib/libtbbmalloc_proxy.so.2.backup\n","!mv /usr/local/lib/libtbbmalloc.so.2 /usr/local/lib/libtbbmalloc.so.2.backup\n","!mv /usr/local/lib/libtbbbind_2_5.so.3 /usr/local/lib/libtbbbind_2_5.so.3.backup\n","!mv /usr/local/lib/libtbb.so.12 /usr/local/lib/libtbb.so.12.backup\n","!mv /usr/local/lib/libtbbbind_2_0.so.3 /usr/local/lib/libtbbbind_2_0.so.3.backup\n","!mv /usr/local/lib/libtbbbind.so.3 /usr/local/lib/libtbbbind.so.3.backup\n","!ln -s /usr/local/lib/libtbbmalloc_proxy.so.2.11 /usr/local/lib/libtbbmalloc_proxy.so.2\n","!ln -s /usr/local/lib/libtbbmalloc.so.2.11 /usr/local/lib/libtbbmalloc.so.2\n","!ln -s /usr/local/lib/libtbbbind_2_5.so.3.11 /usr/local/lib/libtbbbind_2_5.so.3\n","!ln -s /usr/local/lib/libtbb.so.12.11 /usr/local/lib/libtbb.so.12\n","!ln -s /usr/local/lib/libtbbbind_2_0.so.3.11 /usr/local/lib/libtbbbind_2_0.so.3\n","!ln -s /usr/local/lib/libtbbbind.so.3.11 /usr/local/lib/libtbbbind.so.3\n","#If error related to the above execution occurs, you can try commenting out the above 12 lines under pip install PyDrive2 (not included)\n","\n","# !sudo ldconfig\n","!apt install openjdk-8-jdk-headless -qq\n","import os\n","os.environ[\"JAVA_HOME\"] = \"/usr/lib/jvm/java-8-openjdk-amd64\"\n"],"execution_count":1,"outputs":[{"output_type":"stream","name":"stdout","text":["Requirement already satisfied: pyspark in /usr/local/lib/python3.10/dist-packages (3.5.4)\n","Requirement already satisfied: py4j==0.10.9.7 in /usr/local/lib/python3.10/dist-packages (from pyspark) (0.10.9.7)\n","The following additional packages will be installed:\n","  libxtst6 openjdk-8-jre-headless\n","Suggested packages:\n","  openjdk-8-demo openjdk-8-source libnss-mdns fonts-dejavu-extra fonts-nanum fonts-ipafont-gothic\n","  fonts-ipafont-mincho fonts-wqy-microhei fonts-wqy-zenhei fonts-indic\n","The following NEW packages will be installed:\n","  libxtst6 openjdk-8-jdk-headless openjdk-8-jre-headless\n","0 upgraded, 3 newly installed, 0 to remove and 49 not upgraded.\n","Need to get 39.7 MB of archives.\n","After this operation, 144 MB of additional disk space will be used.\n","Selecting previously unselected package libxtst6:amd64.\n","(Reading database ... 123632 files and directories currently installed.)\n","Preparing to unpack .../libxtst6_2%3a1.2.3-1build4_amd64.deb ...\n","Unpacking libxtst6:amd64 (2:1.2.3-1build4) ...\n","Selecting previously unselected package openjdk-8-jre-headless:amd64.\n","Preparing to unpack .../openjdk-8-jre-headless_8u432-ga~us1-0ubuntu2~22.04_amd64.deb ...\n","Unpacking openjdk-8-jre-headless:amd64 (8u432-ga~us1-0ubuntu2~22.04) ...\n","Selecting previously unselected package openjdk-8-jdk-headless:amd64.\n","Preparing to unpack .../openjdk-8-jdk-headless_8u432-ga~us1-0ubuntu2~22.04_amd64.deb ...\n","Unpacking openjdk-8-jdk-headless:amd64 (8u432-ga~us1-0ubuntu2~22.04) ...\n","Setting up libxtst6:amd64 (2:1.2.3-1build4) ...\n","Setting up openjdk-8-jre-headless:amd64 (8u432-ga~us1-0ubuntu2~22.04) ...\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/orbd to provide /usr/bin/orbd (orbd) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/servertool to provide /usr/bin/servertool (servertool) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/tnameserv to provide /usr/bin/tnameserv (tnameserv) in auto mode\n","Setting up openjdk-8-jdk-headless:amd64 (8u432-ga~us1-0ubuntu2~22.04) ...\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/clhsdb to provide /usr/bin/clhsdb (clhsdb) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/extcheck to provide /usr/bin/extcheck (extcheck) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/hsdb to provide /usr/bin/hsdb (hsdb) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/idlj to provide /usr/bin/idlj (idlj) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/javah to provide /usr/bin/javah (javah) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jhat to provide /usr/bin/jhat (jhat) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/jsadebugd to provide /usr/bin/jsadebugd (jsadebugd) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/native2ascii to provide /usr/bin/native2ascii (native2ascii) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/schemagen to provide /usr/bin/schemagen (schemagen) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/wsgen to provide /usr/bin/wsgen (wsgen) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/wsimport to provide /usr/bin/wsimport (wsimport) in auto mode\n","update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/bin/xjc to provide /usr/bin/xjc (xjc) in auto mode\n","Processing triggers for libc-bin (2.35-0ubuntu3.4) ...\n","/sbin/ldconfig.real: /usr/local/lib/libumf.so.0 is not a symbolic link\n","\n","/sbin/ldconfig.real: /usr/local/lib/libhwloc.so.15 is not a symbolic link\n","\n","/sbin/ldconfig.real: /usr/local/lib/libur_adapter_opencl.so.0 is not a symbolic link\n","\n","/sbin/ldconfig.real: /usr/local/lib/libur_adapter_level_zero.so.0 is not a symbolic link\n","\n","/sbin/ldconfig.real: /usr/local/lib/libtcm.so.1 is not a symbolic link\n","\n","/sbin/ldconfig.real: /usr/local/lib/libur_loader.so.0 is not a symbolic link\n","\n","/sbin/ldconfig.real: /usr/local/lib/libtcm_debug.so.1 is not a symbolic link\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"ctU1dYjfOif7"},"source":["Now we authenticate a Google Drive client to download the file we will be processing in our Spark job.\n","\n","**Make sure to follow the interactive instructions.**"]},{"cell_type":"code","metadata":{"id":"1dfnX7IAOkvH","executionInfo":{"status":"ok","timestamp":1736824463639,"user_tz":480,"elapsed":11498,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}}},"source":["from pydrive2.auth import GoogleAuth\n","from pydrive2.drive import GoogleDrive\n","from google.colab import auth\n","from oauth2client.client import GoogleCredentials\n","\n","# Authenticate and create the PyDrive client\n","auth.authenticate_user()\n","gauth = GoogleAuth()\n","gauth.credentials = GoogleCredentials.get_application_default()\n","drive = GoogleDrive(gauth)"],"execution_count":2,"outputs":[]},{"cell_type":"code","metadata":{"id":"UF5nuSdyTJpc","executionInfo":{"status":"ok","timestamp":1736824471931,"user_tz":480,"elapsed":7177,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}}},"source":["id='1L6pCQkldvdBoaEhRFzL0VnrggEFvqON4'\n","downloaded = drive.CreateFile({'id': id})\n","downloaded.GetContentFile('Bombing_Operations.json.gz')\n","\n","id='14dyBmcTBA32uXPxDbqr0bFDIzGxMTWwl'\n","downloaded = drive.CreateFile({'id': id})\n","downloaded.GetContentFile('Aircraft_Glossary.json.gz')"],"execution_count":3,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"wA49WWqmO5rR"},"source":["If you executed the cells above, you should be able to see the files *Bombing_Operations.json.gz* and *Aircraft_Glossary.json.gz* under the \"Files\" tab on the left panel."]},{"cell_type":"code","metadata":{"id":"xgQaRx6rSaf9","executionInfo":{"status":"ok","timestamp":1736824474067,"user_tz":480,"elapsed":1075,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}}},"source":["# Let's import the libraries we will need\n","import pandas as pd\n","import numpy as np\n","import matplotlib.pyplot as plt\n","%matplotlib inline\n","\n","import pyspark\n","from pyspark.sql import *\n","from pyspark.sql.functions import *\n","from pyspark import SparkContext, SparkConf"],"execution_count":4,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"uUD5XpD_SagA"},"source":["Let's initialize the Spark context.\n"]},{"cell_type":"code","metadata":{"id":"7ft3VivrSagB","executionInfo":{"status":"ok","timestamp":1736824485415,"user_tz":480,"elapsed":9723,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}}},"source":["# create the session\n","conf = SparkConf().set(\"spark.ui.port\", \"4050\")\n","\n","# create the context\n","sc = pyspark.SparkContext(conf=conf)\n","spark = SparkSession.builder.getOrCreate()"],"execution_count":5,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"-n20ixkgSagD"},"source":["You can easily check the current version and get the link of the web interface. In the Spark UI, you can monitor the progress of your job and debug the performance bottlenecks (if your Colab is running with a **local runtime**)."]},{"cell_type":"code","metadata":{"id":"Fl4RHbqFSagE","colab":{"base_uri":"https://localhost:8080/","height":216},"executionInfo":{"status":"ok","timestamp":1736824487694,"user_tz":480,"elapsed":2283,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"e25c027b-32ce-4671-f17f-e8b536b9fca9"},"source":["spark"],"execution_count":6,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<pyspark.sql.session.SparkSession at 0x7d2660a93df0>"],"text/html":["\n","            <div>\n","                <p><b>SparkSession - in-memory</b></p>\n","                \n","        <div>\n","            <p><b>SparkContext</b></p>\n","\n","            <p><a href=\"http://83ab790db82f:4050\">Spark UI</a></p>\n","\n","            <dl>\n","              <dt>Version</dt>\n","                <dd><code>v3.5.4</code></dd>\n","              <dt>Master</dt>\n","                <dd><code>local[*]</code></dd>\n","              <dt>AppName</dt>\n","                <dd><code>pyspark-shell</code></dd>\n","            </dl>\n","        </div>\n","        \n","            </div>\n","        "]},"metadata":{},"execution_count":6}]},{"cell_type":"markdown","source":["If you are running this Colab on the Google hosted runtime, the cell below will create a *ngrok* tunnel which will allow you to check the Spark UI.\n","\n","**This part is not needed for you to get correct result for colab 0, so you can ignore any error and continue.**\n","\n","**To facilitate setting up the ngrok tunnel, please do the following steps:**\n","1. First, navigate to the ngrok website and create your account: https://dashboard.ngrok.com/login\n","2. Then, obtain your authentication token from https://dashboard.ngrok.com/get-started/your-authtoken\n","3. Replace \\<YOUR_AUTH_TOKEN_HERE\\> in the following cell with your auth token.\n","\n","You can then proceed to run the following cells, and you should be able to see the Spark UI as a separate web page. Please access the link of `public_url`.\n","\n","(If you see a security warning, \"Deceptive site ahead\", please click \"Details -> visit this unsafe site\" to view the Spark UI.)"],"metadata":{"id":"MKu5Y1GZB1jQ"}},{"cell_type":"code","source":["# !wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz\n","# !tar -xvzf ngrok-v3-stable-linux-amd64.tgz\n","# !./ngrok authtoken 2az5hapy95TbZ7r9VBpPAWuPjrc_eBDg55s2tzvZ3JGPjX2z #replace this with your token\n","# !cat ~/.ngrok2/ngrok.yml\n","# get_ipython().system_raw('./ngrok http 4050 &')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"vXYkcZuaB6QU","executionInfo":{"status":"ok","timestamp":1736824492233,"user_tz":480,"elapsed":2263,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"9de64544-6f49-4bcf-e706-c7d2b5fd1e3a"},"execution_count":7,"outputs":[{"output_type":"stream","name":"stdout","text":["--2025-01-14 03:14:49--  https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz\n","Resolving bin.equinox.io (bin.equinox.io)... 99.83.220.108, 13.248.244.96, 75.2.60.68, ...\n","Connecting to bin.equinox.io (bin.equinox.io)|99.83.220.108|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: 14809556 (14M) [application/octet-stream]\n","Saving to: ‘ngrok-v3-stable-linux-amd64.tgz’\n","\n","ngrok-v3-stable-lin 100%[===================>]  14.12M  18.2MB/s    in 0.8s    \n","\n","2025-01-14 03:14:51 (18.2 MB/s) - ‘ngrok-v3-stable-linux-amd64.tgz’ saved [14809556/14809556]\n","\n","ngrok\n","Authtoken saved to configuration file: /root/.config/ngrok/ngrok.yml\n","cat: /root/.ngrok2/ngrok.yml: No such file or directory\n"]}]},{"cell_type":"code","source":["!curl -s http://localhost:4040/api/tunnels"],"metadata":{"id":"xNuFDyZaB7N-","executionInfo":{"status":"ok","timestamp":1736824494659,"user_tz":480,"elapsed":269,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"3fcc0f59-57ef-45c2-acd8-bdc464cf7aa9"},"execution_count":8,"outputs":[{"output_type":"stream","name":"stdout","text":["{\"tunnels\":[{\"name\":\"command_line\",\"ID\":\"04d82239043e1bab1b6d08b5789ed4be\",\"uri\":\"/api/tunnels/command_line\",\"public_url\":\"https://fab7-35-197-105-125.ngrok-free.app\",\"proto\":\"https\",\"config\":{\"addr\":\"http://localhost:4050\",\"inspect\":true},\"metrics\":{\"conns\":{\"count\":0,\"gauge\":0,\"rate1\":0,\"rate5\":0,\"rate15\":0,\"p50\":0,\"p90\":0,\"p95\":0,\"p99\":0},\"http\":{\"count\":0,\"rate1\":0,\"rate5\":0,\"rate15\":0,\"p50\":0,\"p90\":0,\"p95\":0,\"p99\":0}}}],\"uri\":\"/api/tunnels\"}\n"]}]},{"cell_type":"markdown","metadata":{"id":"gewv-lKMSagI"},"source":["# Spark Example"]},{"cell_type":"markdown","metadata":{"id":"skjUv84VSagJ"},"source":["----\n","\n","\n","**The dataset description.**\n","\n","**Bombing_Operations** [Get the dataset here](https://drive.google.com/a/epfl.ch/file/d/1L6pCQkldvdBoaEhRFzL0VnrggEFvqON4/view?usp=sharing)\n","\n","- AirCraft: _Aircraft model (example: EC-47)_\n","- ContryFlyingMission: _Country_\n","- MissionDate: _Date of the mission_\n","- OperationSupported\n","- PeriodOfDay: _Day or night_\n","- TakeoffLocation: _Take off airport_\n","- TimeOnTarget\n","- WeaponType\n","- WeaponsLoadedWeight\n","\n","**Aircraft_Glossary** [Get the dataset here](https://drive.google.com/a/epfl.ch/file/d/14dyBmcTBA32uXPxDbqr0bFDIzGxMTWwl/view?usp=sharing)\n","\n","- AirCraft: _Aircraft model (example: EC-47)_\n","- AirCraftName\n","- AirCraftType\n"]},{"cell_type":"markdown","metadata":{"id":"VSWoULeWSagJ"},"source":["Load the datasets:"]},{"cell_type":"code","metadata":{"id":"XLyVPuLXSagK"},"source":["Bombing_Operations = spark.read.json(\"Bombing_Operations.json.gz\")\n","Aircraft_Glossary = spark.read.json(\"Aircraft_Glossary.json.gz\")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"MP2JmCeoSagM"},"source":["Check the schema:"]},{"cell_type":"code","metadata":{"id":"KpUT8viNSagM","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291503545,"user_tz":480,"elapsed":133,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"40250dc4-d80f-4076-f691-a05b0575ed41"},"source":["Bombing_Operations.printSchema()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["root\n"," |-- AirCraft: string (nullable = true)\n"," |-- ContryFlyingMission: string (nullable = true)\n"," |-- MissionDate: string (nullable = true)\n"," |-- OperationSupported: string (nullable = true)\n"," |-- PeriodOfDay: string (nullable = true)\n"," |-- TakeoffLocation: string (nullable = true)\n"," |-- TargetCountry: string (nullable = true)\n"," |-- TimeOnTarget: double (nullable = true)\n"," |-- WeaponType: string (nullable = true)\n"," |-- WeaponsLoadedWeight: long (nullable = true)\n","\n"]}]},{"cell_type":"code","metadata":{"id":"6LJsbmlxSagO","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291505902,"user_tz":480,"elapsed":204,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"9e996870-adec-4bc1-ba1b-9c6fb5ce199c"},"source":["Aircraft_Glossary.printSchema()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["root\n"," |-- AirCraft: string (nullable = true)\n"," |-- AirCraftName: string (nullable = true)\n"," |-- AirCraftType: string (nullable = true)\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"1jP5IBezSagQ"},"source":["Get a sample with `take()`:"]},{"cell_type":"code","metadata":{"id":"jrJpiG5ISagQ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291508302,"user_tz":480,"elapsed":695,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"ff17bef8-5ce8-4fba-c23d-602c71453e82"},"source":["Bombing_Operations.take(3)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[Row(AirCraft='EC-47', ContryFlyingMission='UNITED STATES OF AMERICA', MissionDate='1971-06-05', OperationSupported=None, PeriodOfDay='D', TakeoffLocation='TAN SON NHUT', TargetCountry='CAMBODIA', TimeOnTarget=1005.0, WeaponType=None, WeaponsLoadedWeight=0),\n"," Row(AirCraft='EC-47', ContryFlyingMission='UNITED STATES OF AMERICA', MissionDate='1972-12-26', OperationSupported=None, PeriodOfDay='D', TakeoffLocation='NAKHON PHANOM', TargetCountry='SOUTH VIETNAM', TimeOnTarget=530.0, WeaponType=None, WeaponsLoadedWeight=0),\n"," Row(AirCraft='RF-4', ContryFlyingMission='UNITED STATES OF AMERICA', MissionDate='1973-07-28', OperationSupported=None, PeriodOfDay='D', TakeoffLocation='UDORN AB', TargetCountry='LAOS', TimeOnTarget=730.0, WeaponType=None, WeaponsLoadedWeight=0)]"]},"metadata":{},"execution_count":16}]},{"cell_type":"markdown","metadata":{"id":"iu7n8KKjSagS"},"source":["Get a formatted sample with `show()`:"]},{"cell_type":"code","metadata":{"id":"nwYZrwanSagT","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291510523,"user_tz":480,"elapsed":638,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"478f960b-35fa-46c5-c2eb-8213ae64fbac"},"source":["Aircraft_Glossary.show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------+--------------------+--------------------+\n","|AirCraft|        AirCraftName|        AirCraftType|\n","+--------+--------------------+--------------------+\n","|     A-1|Douglas A-1 Skyra...|         Fighter Jet|\n","|    A-26|Douglas A-26 Invader|        Light Bomber|\n","|    A-37|Cessna A-37 Drago...|Light ground-atta...|\n","|     A-4|McDonnell Douglas...|         Fighter Jet|\n","|     A-5|North American A-...|          Bomber Jet|\n","|     A-6|Grumman A-6 Intruder|     Attack Aircraft|\n","|     A-7|  LTV A-7 Corsair II|     Attack Aircraft|\n","|  AC-119|Fairchild AC-119 ...|Military Transpor...|\n","|  AC-123|Fairchild C-123 P...|Military Transpor...|\n","|  AC-130|Lockheed AC-130 S...|Fixed wing ground...|\n","|   AC-47|Douglas AC-47 Spooky|Ground attack air...|\n","|    AH-1| Bell AH-1 HueyCobra|          Helicopter|\n","|     B-1| Rockwell B-1 Lancer|Heavy strategic b...|\n","|    B-52| B-52 Stratofortress|    Strategic bomber|\n","|    B-57|Martin B-57 Canberra|     Tactical Bomber|\n","|    B-66|Douglas B-66 Dest...|        Light Bomber|\n","|     C-1| Grumman C-1A Trader|           Transport|\n","|   C-117|     C-117D Skytrain|           Transport|\n","|   C-119|Fairchild C-119 F...|Military Transpor...|\n","|   C-123|Fairchild C-123 P...|Military Transpor...|\n","+--------+--------------------+--------------------+\n","only showing top 20 rows\n","\n"]}]},{"cell_type":"code","metadata":{"id":"hMAab2rJSagU","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291525492,"user_tz":480,"elapsed":12639,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"4395b340-5ac2-4a36-bbb9-afc14fb0996b"},"source":["print(\"In total there are {0} operations\".format(Bombing_Operations.count()))"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["In total there are 4400775 operations\n"]}]},{"cell_type":"markdown","metadata":{"id":"hkKWEEcLSagW"},"source":["## Question 1: Which countries are involved and in how many missions?\n","\n","Keywords: `Dataframe API`, `SQL`, `group by`, `sort`"]},{"cell_type":"markdown","metadata":{"id":"MwPL1-P5SagW"},"source":["Let's group the missions by `ContryFlyingMission` and count how many records exist:"]},{"cell_type":"code","metadata":{"scrolled":true,"id":"BWcMVcgwSagX","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291547146,"user_tz":480,"elapsed":16994,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"5b55d680-ef85-479e-e05f-7e0c080508a0"},"source":["missions_counts = Bombing_Operations.groupBy(\"ContryFlyingMission\")\\\n","                                    .agg(count(\"*\").alias(\"MissionsCount\"))\\\n","                                    .sort(desc(\"MissionsCount\"))\n","missions_counts.show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------------------+-------------+\n","| ContryFlyingMission|MissionsCount|\n","+--------------------+-------------+\n","|UNITED STATES OF ...|      3708997|\n","|     VIETNAM (SOUTH)|       622013|\n","|                LAOS|        32777|\n","|       KOREA (SOUTH)|        24469|\n","|           AUSTRALIA|        12519|\n","+--------------------+-------------+\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"t5trEAkzSagY"},"source":["In this case we used the DataFrame API, but we could rewite the `groupBy` using pure SQL:"]},{"cell_type":"code","metadata":{"id":"3slo-sXOSagZ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291567162,"user_tz":480,"elapsed":17711,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"4516745b-69c7-4942-d950-89bdd8ff17f8"},"source":["Bombing_Operations.createOrReplaceTempView(\"Bombing_Operations\")\n","\n","query = \"\"\"\n","SELECT ContryFlyingMission, count(*) as MissionsCount\n","FROM Bombing_Operations\n","GROUP BY ContryFlyingMission\n","ORDER BY MissionsCount DESC\n","\"\"\"\n","\n","missions_counts = spark.sql(query)\n","missions_counts.show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------------------+-------------+\n","| ContryFlyingMission|MissionsCount|\n","+--------------------+-------------+\n","|UNITED STATES OF ...|      3708997|\n","|     VIETNAM (SOUTH)|       622013|\n","|                LAOS|        32777|\n","|       KOREA (SOUTH)|        24469|\n","|           AUSTRALIA|        12519|\n","+--------------------+-------------+\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"5wQNXQnOSaga"},"source":["The Dataframe is small enough to be moved to Pandas:"]},{"cell_type":"code","metadata":{"id":"4nVJdPLDSagb","colab":{"base_uri":"https://localhost:8080/","height":204},"executionInfo":{"status":"ok","timestamp":1736291585481,"user_tz":480,"elapsed":15924,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"bfa187f7-bf5a-4115-8cbc-49f259d7da92"},"source":["missions_count_pd = missions_counts.toPandas()\n","missions_count_pd.head()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["        ContryFlyingMission  MissionsCount\n","0  UNITED STATES OF AMERICA        3708997\n","1           VIETNAM (SOUTH)         622013\n","2                      LAOS          32777\n","3             KOREA (SOUTH)          24469\n","4                 AUSTRALIA          12519"],"text/html":["\n","  <div id=\"df-ba9028b6-8d0f-4f3f-b6c8-cb227ba86810\" class=\"colab-df-container\">\n","    <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>ContryFlyingMission</th>\n","      <th>MissionsCount</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>3708997</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>VIETNAM (SOUTH)</td>\n","      <td>622013</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>LAOS</td>\n","      <td>32777</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>KOREA (SOUTH)</td>\n","      <td>24469</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>AUSTRALIA</td>\n","      <td>12519</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>\n","    <div class=\"colab-df-buttons\">\n","\n","  <div class=\"colab-df-container\">\n","    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ba9028b6-8d0f-4f3f-b6c8-cb227ba86810')\"\n","            title=\"Convert this dataframe to an interactive table.\"\n","            style=\"display:none;\">\n","\n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n","    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n","  </svg>\n","    </button>\n","\n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    .colab-df-buttons div {\n","      margin-bottom: 4px;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","    <script>\n","      const buttonEl =\n","        document.querySelector('#df-ba9028b6-8d0f-4f3f-b6c8-cb227ba86810 button.colab-df-convert');\n","      buttonEl.style.display =\n","        google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","      async function convertToInteractive(key) {\n","        const element = document.querySelector('#df-ba9028b6-8d0f-4f3f-b6c8-cb227ba86810');\n","        const dataTable =\n","          await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                    [key], {});\n","        if (!dataTable) return;\n","\n","        const docLinkHtml = 'Like what you see? Visit the ' +\n","          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","          + ' to learn more about interactive tables.';\n","        element.innerHTML = '';\n","        dataTable['output_type'] = 'display_data';\n","        await google.colab.output.renderOutput(dataTable, element);\n","        const docLink = document.createElement('div');\n","        docLink.innerHTML = docLinkHtml;\n","        element.appendChild(docLink);\n","      }\n","    </script>\n","  </div>\n","\n","\n","<div id=\"df-a04f4f02-b13a-42fd-a46d-bff241af5bf5\">\n","  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a04f4f02-b13a-42fd-a46d-bff241af5bf5')\"\n","            title=\"Suggest charts\"\n","            style=\"display:none;\">\n","\n","<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","     width=\"24px\">\n","    <g>\n","        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n","    </g>\n","</svg>\n","  </button>\n","\n","<style>\n","  .colab-df-quickchart {\n","      --bg-color: #E8F0FE;\n","      --fill-color: #1967D2;\n","      --hover-bg-color: #E2EBFA;\n","      --hover-fill-color: #174EA6;\n","      --disabled-fill-color: #AAA;\n","      --disabled-bg-color: #DDD;\n","  }\n","\n","  [theme=dark] .colab-df-quickchart {\n","      --bg-color: #3B4455;\n","      --fill-color: #D2E3FC;\n","      --hover-bg-color: #434B5C;\n","      --hover-fill-color: #FFFFFF;\n","      --disabled-bg-color: #3B4455;\n","      --disabled-fill-color: #666;\n","  }\n","\n","  .colab-df-quickchart {\n","    background-color: var(--bg-color);\n","    border: none;\n","    border-radius: 50%;\n","    cursor: pointer;\n","    display: none;\n","    fill: var(--fill-color);\n","    height: 32px;\n","    padding: 0;\n","    width: 32px;\n","  }\n","\n","  .colab-df-quickchart:hover {\n","    background-color: var(--hover-bg-color);\n","    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n","    fill: var(--button-hover-fill-color);\n","  }\n","\n","  .colab-df-quickchart-complete:disabled,\n","  .colab-df-quickchart-complete:disabled:hover {\n","    background-color: var(--disabled-bg-color);\n","    fill: var(--disabled-fill-color);\n","    box-shadow: none;\n","  }\n","\n","  .colab-df-spinner {\n","    border: 2px solid var(--fill-color);\n","    border-color: transparent;\n","    border-bottom-color: var(--fill-color);\n","    animation:\n","      spin 1s steps(1) infinite;\n","  }\n","\n","  @keyframes spin {\n","    0% {\n","      border-color: transparent;\n","      border-bottom-color: var(--fill-color);\n","      border-left-color: var(--fill-color);\n","    }\n","    20% {\n","      border-color: transparent;\n","      border-left-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","    }\n","    30% {\n","      border-color: transparent;\n","      border-left-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","      border-right-color: var(--fill-color);\n","    }\n","    40% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","    }\n","    60% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","    }\n","    80% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","      border-bottom-color: var(--fill-color);\n","    }\n","    90% {\n","      border-color: transparent;\n","      border-bottom-color: var(--fill-color);\n","    }\n","  }\n","</style>\n","\n","  <script>\n","    async function quickchart(key) {\n","      const quickchartButtonEl =\n","        document.querySelector('#' + key + ' button');\n","      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n","      quickchartButtonEl.classList.add('colab-df-spinner');\n","      try {\n","        const charts = await google.colab.kernel.invokeFunction(\n","            'suggestCharts', [key], {});\n","      } catch (error) {\n","        console.error('Error during call to suggestCharts:', error);\n","      }\n","      quickchartButtonEl.classList.remove('colab-df-spinner');\n","      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n","    }\n","    (() => {\n","      let quickchartButtonEl =\n","        document.querySelector('#df-a04f4f02-b13a-42fd-a46d-bff241af5bf5 button');\n","      quickchartButtonEl.style.display =\n","        google.colab.kernel.accessAllowed ? 'block' : 'none';\n","    })();\n","  </script>\n","</div>\n","\n","    </div>\n","  </div>\n"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"dataframe","variable_name":"missions_count_pd","summary":"{\n  \"name\": \"missions_count_pd\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"ContryFlyingMission\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"VIETNAM (SOUTH)\",\n          \"AUSTRALIA\",\n          \"LAOS\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MissionsCount\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1602499,\n        \"min\": 12519,\n        \"max\": 3708997,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          622013,\n          12519,\n          32777\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"}},"metadata":{},"execution_count":21}]},{"cell_type":"markdown","metadata":{"id":"VQedtuQZSagc"},"source":["Let's plot a barchart with the number of missions by country:"]},{"cell_type":"code","metadata":{"id":"tgbceprDSagd","colab":{"base_uri":"https://localhost:8080/","height":842},"executionInfo":{"status":"ok","timestamp":1736291593290,"user_tz":480,"elapsed":2001,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"f838470e-4799-4906-9214-388e2443b942"},"source":["pl = missions_count_pd.plot(kind=\"bar\",\n","                            x=\"ContryFlyingMission\", y=\"MissionsCount\",\n","                            figsize=(10, 7), log=True, alpha=0.5, color=\"olive\")\n","pl.set_xlabel(\"Country\")\n","pl.set_ylabel(\"Number of Missions (Log scale)\")\n","pl.set_title(\"Number of missions by Country\")"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Text(0.5, 1.0, 'Number of missions by Country')"]},"metadata":{},"execution_count":22},{"output_type":"display_data","data":{"text/plain":["<Figure size 1000x700 with 1 Axes>"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAA1EAAAMoCAYAAAAuqGqjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACE40lEQVR4nOzdeXhMd+P+8XuSCGKJXaRiX0Mlllhardhqe9CqtUUsLdUommrRhS7aqqKxjHqqIqqK1q4LVUujq+BBK2qpWFoSlAhBkMzvj37NrykhJyY5k5n367rmusznnJy5EyNy53PO51hsNptNAAAAAIAs8TA7AAAAAADkJZQoAAAAADCAEgUAAAAABlCiAAAAAMAAShQAAAAAGECJAgAAAAADKFEAAAAAYAAlCgAAAAAMoEQBAAAAgAGUKABwYlu2bJHFYtGyZcvMjpIliYmJ6t69u0qWLCmLxaLIyMgce63Q0FCFhoY6/LgDBgxQpUqVHH5cR3j11VdlsVh05swZs6MAgFujRAFwe9HR0bJYLCpQoID+/PPPm7aHhoaqbt26JiTLe5599lmtX79e48aN08KFC9W+fXuzI+EurFy5Uh06dFCpUqXk7e0tf39/9ezZU5s2bTI7miTpxIkTevXVV7Vr1y6zowBwM15mBwAAZ5GamqpJkyZp5syZZkfJszZt2qSuXbtq9OjROf5aX3/9dY4cd+7cuUpPT8+RY+cVNptNgwYNUnR0tOrXr6+IiAj5+fnp5MmTWrlypVq3bq3vv/9e9913n6k5T5w4oddee02VKlVScHCwqVkAuBdKFAD8n+DgYM2dO1fjxo2Tv7+/2XFyVUpKigoVKnTXxzl16pSKFSt294GywNvbO0eOmy9fvhw5bl4ydepURUdHa9SoUZo2bZosFot920svvaSFCxfKyyvv/Qhx6dIl+fj4mB0DgAvgdD4A+D8vvvii0tLSNGnSpNvud+TIEVksFkVHR9+0zWKx6NVXX7U/v3ENy4EDB9S3b1/5+vqqdOnSeuWVV2Sz2XT8+HF17dpVRYsWlZ+fn6ZOnXrL10xLS9OLL74oPz8/FSpUSF26dNHx48dv2u/nn39W+/bt5evrKx8fH7Vo0ULff/99hn1uZIqLi9Njjz2m4sWLq3nz5rf9nA8fPqwePXqoRIkS8vHxUdOmTfXFF1/Yt984JdJms8lqtcpisWT4wTuzr+GUKVNktVpVpUoV+fj46KGHHtLx48dls9n0xhtvqHz58ipYsKC6du2qs2fPZjjGra6JmjlzpurUqSMfHx8VL15cjRo10ieffGLffuHCBY0aNUqVKlVS/vz5VaZMGbVt21Y7d+6073Ora6JSUlL03HPPKSAgQPnz51fNmjU1ZcoU2Wy2DPtZLBYNHz5cq1atUt26dZU/f37VqVNH69aty7BfVnLczpkzZ9SzZ08VLVpUJUuW1MiRI3XlyhX79hYtWigoKOiWH1uzZk21a9cu02NfvnxZb7/9tmrVqqUpU6bc8u+xX79+aty4sf35nd4f0v9/jxw5ciTD+I3r/rZs2WIfu3EKbVxcnFq2bCkfHx/dc889mjx5coaPCwkJkSQNHDjQ/p678e/yxjF27NihBx98UD4+PnrxxRcVFhamUqVK6dq1azd9Xg899JBq1qyZ6dcGAG6gRAHA/6lcubL69++vuXPn6sSJEw49dq9evZSenq5JkyapSZMmmjhxoiIjI9W2bVvdc889euedd1StWjWNHj1aMTExN338m2++qS+++EJjxozRiBEjtGHDBrVp00aXL1+277Np0yY9+OCDSk5O1oQJE/TWW28pKSlJrVq10rZt2246Zo8ePXTp0iW99dZbevLJJzPNnpiYqPvuu0/r16/X008/rTfffFNXrlxRly5dtHLlSknSgw8+qIULF0qS2rZtq4ULF9qf386iRYs0e/ZsPfPMM3ruuef07bffqmfPnnr55Ze1bt06jRkzRkOGDNHatWvveIrg3LlzNWLECAUGBioyMlKvvfaagoOD9fPPP9v3eeqpp/T+++/r0Ucf1ezZszV69GgVLFhQ+/bty/S4NptNXbp00Xvvvaf27dtr2rRpqlmzpp5//nlFRETctP93332np59+Wr1799bkyZN15coVPfroo/rrr7/uKsc/9ezZU1euXNHbb7+tjh07asaMGRoyZIh9e79+/bRnzx79+uuvGT4uNjbWXugz89133+ns2bN67LHH5OnpeccsWXl/ZMe5c+fUvn17BQUFaerUqapVq5bGjBmjr776SpJUu3Ztvf7665KkIUOG2N9zDz74oP0Yf/31lzp06KDg4GBFRkaqZcuW6tevn/766y+tX78+w+slJCRo06ZNt/3aAICdDQDc3Pz5822SbLGxsbbff//d5uXlZRsxYoR9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99m9e7datmypIkWKqGjRomrYsKG2b98uSfr000+1aNEiLV68WC+++KJCQkJUqVIlde3aVZs2bVLLli0l/X2/r9dff13ly5dX/vz5FRwcrHXr1t2UIykpyT62a9cuWSwWHTlyRJIUHR2tYsWKaf369apdu7YKFy6s9u3b6+TJk5KkV199VQsWLNDq1atlsVhksVi0ZcsWg39jWee2JQoAAADIaYMGDdL8+fPtz6OiojRw4MBM99++fbtGjBih119/Xfv379e6dev04IMPSpJOnjypPn36aNCgQdq3b5+2bNmibt26yWaz3fJYL7zwgpYvX64FCxZo586dqlatmtq1a6ezZ89m2O+ll17S1KlTtX37dnl5eWnQoEH2bY8//rjKly+v2NhY7dixQ2PHjlW+fPkkSYsWLVLNmjXVtWvXm17bYrHI19dX0t+nGU6dOlVTpkzRnj171K5dO3Xp0kUHDx7M4lfxb5cuXdKUKVO0cOFCxcTE6NixYxo9erQkafTo0erZs6e9WJ08eVL33XefoeMbwcISAAAAQA7p27evxo0bp6NHj0qSvv/+ey1ZsiTTWZJjx46pUKFC+s9//qMiRYqoYsWK9lmrkydP6vr16+rWrZsqVqwoSbr33ntveZyUlBS9//77io6OVocOHSRJc+fO1YYNGzRv3jw9//zz9n3ffPNNtWjRQpI0duxYderUSVeuXFGBAgV07NgxPf/886pVq5YkqXr16vaPO3jwoGrWrHnHr8GUKVM0ZswY9e7dW5L0zjvvaPPmzYqMjJTVar3jx99w7do1zZkzR1WrVpUkDR8+XK+//rokqXDhwipYsKBSU1Pl5+eX5WNmFzNRAAAAQA4pXbq0OnXqpOjoaM2fP1+dOnVSqVKlMt2/bdu2qlixoqpUqaJ+/fpp0aJF9gUagoKC1Lp1a917773q0aOH5s6dq3Pnzt3yOL///ruuXbum+++/3z6WL18+NW7cWPv27cuwb7169ex/LleunCTp1KlTkqSIiAg98cQTatOmjSZNmqTff//dvm9mM2D/lJycrBMnTmTIIUn333//TTnuxMfHx16gbmS9kTO3UaIAAACAHDRo0CBFR0drwYIFGU6Vu5UiRYpo586dWrx4scqVK6fx48crKChISUlJ8vT01IYNG/TVV18pMDBQM2fOVM2aNRUfH39X+W6cnif9fRqe9Pd1TNLf1xrt3btXnTp10qZNmxQYGKiVK1dKkmrUqKHffvvtrl5bkjw8/q4k/yxl165du23OG1mzUuRyAiUKAAAAyEHt27fX1atXde3aNbVr1+6O+3t5ealNmzaaPHmy9uzZoyNHjmjTpk2S/i4O999/v1577TX973//k7e3t73U/FPVqlXl7e2t77//3j527do1xcbGKjAw0FD+GjVq6Nlnn9XXX3+tbt262a/xeuyxx3TgwAGtXr36po+x2Ww6f/68ihYtKn9//ww5pL9Pa7yRo3Tp0pJkXyRC+nthCaO8vb2VlpZm+OOyg2uiAAAAgBzk6elpP3XN09Pztvt+/vnnOnz4sB588EEVL15cX375pdLT01WzZk39/PPP2rhxox566CGVKVNGP//8s06fPq3atWvfdJxChQpp2LBhev7551WiRAlVqFBBkydP1qVLlzR48OAs5b58+bKef/55de/eXZUrV9Yff/yh2NhYPfroo5Kknj17auXKlerTp49efvllPfTQQypdurR++eUXvffee3rmmWf08MMP6/nnn9eECRNUtWpVBQcHa/78+dq1a5cWLVokSapWrZoCAgL06quv6s0339SBAwc0depUI19iSVKlSpW0fv167d+/XyVLlpSvr+9Ns1eO4rYlymq1ymq15lpbBQAAgOOEhr5qdgRDihYtmqX9ihUrphUrVujVV1/VlStXVL16dS1evFh16tTRvn37FBMTo8jISCUnJ6tixYqaOnWqfeGIf5s0aZLS09PVr18/XbhwQY0aNdL69etVvHjxLGXx9PTUX3/9pf79+ysxMVGlSpVSt27d9Nprr0n6e1bsk08+0QcffKCoqCi9+eab8vLyUvXq1dW/f3/7rNuIESN0/vx5Pffcczp16pQCAwO1Zs0a+yIV+fLl0+LFizVs2DDVq1dPISEhmjhxonr06JGlnDc8+eST2rJlixo1aqSLFy9q8+bNCg0NNXSMrLLYzDqR0EkkJyfL19fXPt0IAAAA53DlyhXFx8ercuXKKlCggNlx4CJu977Kajdw25movGDLllfNjpAn5bXfTAEAACBvYWEJAAAAADCAEgUAAAAABlCiAAAAAMAAShQAAACcmpuvgwYHc8T7iRIFAAAAp3TjHj+XLl0yOQlcyY33093cQ4rV+QAAAOCUPD09VaxYMZ06dUqS5OPjI4vFYnIq5FU2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8OHD7+rY4eHhCg8PV3Jysnx9fR2QFgAAAIA7yFKJ+qf09HSHBrh48aIOHTpkfx4fH69du3apRIkSqlChgiIiIhQWFqZGjRqpcePGioyMVEpKigYOHOjQHAAAAACQFYZLlCT9/vvvioyM1L59+yRJgYGBGjlypKpWrWr4WNu3b1fLli3tzyMiIiRJYWFhio6OVq9evXT69GmNHz9eCQkJCg4O1rp1625abAIAAAAAcoPhErV+/Xp16dJFwcHBuv/++yVJ33//verUqaO1a9eqbdu2ho4XGhoqm812232GDx9+16fv/RvXRAEAAADIDsMlauzYsXr22Wc1adKkm8bHjBljuESZhWuiAAAAAGRHlu4T9U/79u3T4MGDbxofNGiQ4uLiHBIKAAAAAJyV4RJVunTpW96XadeuXbmyYh8AAAAAmMnw6XxPPvmkhgwZosOHD+u+++6T9Pc1Ue+88459UYi8gGuiAAAAAGSH4RL1yiuvqEiRIpo6darGjRsnSfL399err76qESNGODxgTuGaKAAAAADZYbhEWSwWPfvss3r22Wd14cIFSVKRIkUcHgwAAAAAnFG27hN1A+UJAAAAgLsxvLAEAAAAALgzShQAAAAAGOC2JcpqtSowMFAhISFmRwEAAACQhxgqUdeuXVPr1q118ODBnMqTa8LDwxUXF6fY2FizowAAAADIQwyVqHz58mnPnj05lQUAAAAAnJ7h0/n69u2refPm5UQWAAAAAHB6hpc4v379uqKiovTNN9+oYcOGKlSoUIbt06ZNc1g4AAAAAHA2hkvUr7/+qgYNGkiSDhw4kGGbxWJxTCoAAAAAcFKGS9TmzZtzIkeus1qtslqtSktLMzsKAAAAgDwk20ucHzp0SOvXr9fly5clSTabzWGhcgOr8wEAAADIDsMl6q+//lLr1q1Vo0YNdezYUSdPnpQkDR48WM8995zDAwIAAACAMzFcop599lnly5dPx44dk4+Pj328V69eWrdunUPDAQAAAICzMXxN1Ndff63169erfPnyGcarV6+uo0ePOiwYAAAAADgjwzNRKSkpGWagbjh79qzy58/vkFAAAAAA4KwMl6gHHnhAH330kf25xWJRenq6Jk+erJYtWzo0HAAAAAA4G8On802ePFmtW7fW9u3bdfXqVb3wwgvau3evzp49q++//z4nMuYIljgHAAAAkB2G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HJAk1ahRg1XS4HCZnT56Q1JSUu4EgVuIjY3V4sWLM3xf69Onj0JCQkxOBlcwf/58zZ07V2FhYdq6datatGihH374QYcOHVKhQoXMjueyKFG4K9yYEo60bds2DR48WHFxcfaCbrFYVKdOHc2bN48fOOAwdzo11NfXV/3798+lNHBlL7zwgqZMmaLChQvbz+T49ttvNX36dI0ePVrvvPOOyQmR1x07dkytWrWSJD3wwAPKly+fXnvtNQpUDqNEAXAKcXFxat26tWrXrq2PP/5YtWvXto+/9957at26tX766SduGgiHmD9/vtkR4AYWLFigmTNnasaMGRo6dKjy5csn6e8VR99//32NGTNGderUobDjrqSmpqpAgQL2597e3ipRooSJidwD10QhUx4eHtq0aZP9H+J9992nTz/9VOXLl5cknTlzRm3btuWaAThEz549df36dS1fvvymGU6bzaZu3bopX758+vTTT01KCADGNG7cWH369NGzzz57y+3Tpk3TkiVLtG3btlxOBlfi4eGhIUOGyMfHR5JktVrVt2/fm2bcp02bZkY8l0WJQqY8PDxksVhued3TjXGLxUKJgkOULl1aX331lRo1anTL7bGxserYsaNOnz6dy8kAIHsKFSqkX375xX4a378dPnxY9957r1JSUnI5GVxJaGjoHS+vsFgs2rRpUy4lcg+czodMcU8B5KYLFy6obNmymW738/PThQsXcjERANwdT09PXb16NdPt165dy/Q2IkBWbdmyxewIbokShUxVrFjR7AhwIxUrVtS2bdsUEBBwy+0///wz70kAeUqDBg20aNEivfHGG7fcvnDhQjVo0CCXU8HVVKlSRbGxsSpZsqTZUdwKJQqZOnbsWJb2q1ChQg4ngTvo3bu3IiIiVLNmTdWtWzfDtl9++UWjR4/m4msAecro0aP18MMPKzU1Vc8995x9tj0hIUFTp05VZGSkVq5caXJK5HVHjhzh0goTcE0UMvXPUwz+udz0P8e4JgqOcuXKFbVu3Vo///yz2rZtq9q1a8tms2nfvn365ptv1LhxY23atCnDCkQA4Oxmzpyp0aNH6/r16/YL/c+fPy8vLy9NnjxZI0eONDkh8joPDw8lJCSoTJkyZkdxK5QoZMrLy0vly5fXgAED1LlzZ3l53XriMigoKJeTwVVdvXpV77333k03pezdu7eeffZZ5c+f3+SEAGDcH3/8oc8++0wHDx6U9Pf3tUcffTTT05cBIzw8PLRgwYI73v+uS5cuuZTIPVCikKmEhAQtWLBA8+fPV1JSkvr27avBgwfb798DAAAAc3l4eNxxH84ccrw7f9Xhtvz8/DRmzBj99ttvWrZsmc6dO6cmTZqoadOmmjt3rtLT082OCBd35coVLViwQLNnz7b/BhcA8ooDBw7cdA+ojRs3qmXLlmrcuLHeeustk5LB1SQkJCg9PT3TBwXK8ZiJgiGJiYnq06ePvv32W50+fZo7YsNhIiIidO3aNc2cOVPS36f2NW7cWHFxcfLx8dH169e1YcMGNWvWzOSkAJA1jzzyiO699169/vrrkv6+dUidOnX0wAMPqFatWoqKitIbb7yhUaNGmRsUeZqnp6dOnjzJNVG5jJkoZMkPP/ygJ554QjVq1NDFixdltVpVrFgxs2PBhXz99ddq27at/fmiRYt07NgxHTx4UOfOnVOPHj00ceJEExMCgDHbt29Xhw4d7M8XLVqkGjVqaP369Zo+fboiIyMVHR1tXkC4BOZDzEGJQqZOnjypd955R7Vq1dIjjzyiokWL6vvvv9e2bdv01FNPZekcXCCrjh07psDAQPvzr7/+Wt27d1fFihVlsVg0cuRI/e9//zMxIQAYc+bMGZUvX97+fPPmzercubP9eWhoqI4cOWJCMriSsLAwFSxY0OwYbof7RCFTFSpU0D333KOwsDB16dJF+fLlU3p6uvbs2ZNhv3r16pmUEK7Ew8Mjw2/TfvrpJ73yyiv258WKFdO5c+fMiAYA2VKiRAmdPHlSAQEBSk9P1/bt2xUREWHffvXqVWYRcNc++OCDm65TT0xM1Jw5c5SSkqIuXbqoefPmJqVzXZQoZCotLU3Hjh3TG2+8YT+N6t/f7FntBY5Su3ZtrV27VhEREdq7d6+OHTumli1b2rcfPXrUfqNKAMgLQkND9cYbb2j27Nn67LPPlJ6ertDQUPv2uLg4VapUybR8cA1DhgyRt7e3/vvf/0qSLly4oJCQEF25ckXlypXTe++9p9WrV6tjx44mJ3UtlChkKj4+3uwIcCMvvPCCevfurS+++EJ79+5Vx44dVblyZfv2L7/8Uo0bNzYxIQAY8+abb6pt27aqWLGiPD09NWPGDBUqVMi+feHChWrVqpWJCeEKvv/+e82aNcv+/KOPPlJaWpoOHjwoX19fjRkzRu+++y4lysFYnQ935ddff1XdunXNjgEXsXHjRn3++efy8/PTM888Ix8fH/u21157TS1atMjwW1wAcHbXr1/X3r17Vbp0afn7+2fYtnv3bpUvX14lS5Y0KR1cQaFChfTrr7/af/HYrVs3lS9fXjNmzJD094xnaGioTp06ZWZMl0OJgmEXLlzQ4sWL9eGHH2rHjh2czgcAAGCSkiVLauvWrfbFmfz9/fXuu+/q8ccflyQdPnxYdevW1aVLl8yM6XJYXg1ZFhMTo7CwMJUrV05TpkxRq1at9NNPP5kdCy7g2LFjhvb/888/cygJADjGpEmTdPny5Szt+/PPP+uLL77I4URwVcHBwVq4cKEkaevWrUpMTMxwmujvv/9+0ywo7h4lCreVkJCgSZMmqXr16urRo4eKFi2q1NRUrVq1SpMmTVJISIjZEeECQkJCNHToUMXGxma6z/nz5zV37lzVrVtXy5cvz8V0AGBcXFycKlSooKefflpfffWVTp8+bd92/fp17dmzR7Nnz9Z9992nXr16qUiRIiamRV42fvx4TZ8+XVWrVlW7du00YMAAlStXzr595cqVuv/++01M6Jo4nQ+Z6ty5s2JiYtSpUyc9/vjjat++vTw9PZUvXz7t3r07wz19gLvx119/6c0331RUVJQKFCighg0byt/fXwUKFNC5c+cUFxenvXv3qkGDBnrllVe4OBZAnrB7927NmjVLy5YtU3Jysjw9PZU/f377aVX169fXE088oQEDBqhAgQImp0VeFhcXpw0bNsjPz089evTIcC/PDz74QI0bN1ZwcLB5AV0QJQqZ8vLy0ogRIzRs2DBVr17dPk6JQk65fPmyvvjiC3333Xc6evSoLl++rFKlSql+/fpq164di5gAyJNu3GPxn9/XgoODVapUKbOjAcgmShQy9dNPP2nevHlaunSpateurX79+ql3794qV64cJQoAAMAJ3FiF7998fX1Vo0YNNWvWLJcTuQdKFO4oJSVFS5cuVVRUlLZt26a0tDRNmzZNgwYN4hxuAAAAE/3znor/lJSUpPPnz+u+++7TmjVrVKJEiVxO5tooUTBk//79mjdvnhYuXKikpCS1bdtWa9asMTsWAAAA/uXw4cPq27evgoODNXv2bLPjuBRKFLIlLS1Na9euVVRUFCUKAADAScXExGjQoEE6dOiQ2VFcCiUKAAAAcFFHjhxR3bp1dfHiRbOjuBTuEwUAAJDLbDabvvrqK3Xv3t3sKHBxv/zyiypWrGh2DJfjZXYAAJD+Pt0gKx588MEcTgIAOSc+Pl5RUVGKjo7W6dOn1aZNG7MjIY9LTk6+5fj58+e1Y8cOPffccwoLC8vlVK6P0/kAOAUPDw9ZLBZJf/+G9lYsFovS0tJyMxYA3LXU1FQtW7ZM8+bN03fffae0tDRNmTJFgwcPVtGiRc2Ohzzun/9//pvFYtETTzyhGTNmyNvbO5eTuTZmogA4heLFi6tIkSIaMGCA+vXrx00oAeR5O3bs0Lx587R48WJVq1ZN/fr10+LFi1W+fHm1a9eOAgWH2Lx58y3HixYtqurVq6tw4cL69ddfuWG9gzEThUw9+OCDWrNmjYoVKyZJWrNmjdq2bauCBQuaGwwu6erVq1q5cqWioqK0detWdezYUYMHD1b79u0z/Q0bADgzLy8vPfPMM3rqqadUs2ZN+3i+fPm4aT1y3IULF7R48WLNmzdP27dv50wOB2NhCWTqu+++09WrV+3P+/btq5MnT5qYCK7M29tbvXr10vr16/Xbb7+pXr16Gj58uAICAvTSSy/p+vXrZkcEAENat26tefPm6fXXX9e6desyPVUZcKSYmBiFhYWpXLlymjJlilq2bKmffvrJ7FguhxKFLOObP3JLhQoVNH78eH3zzTeqUaOGJk2alOmFswDgrNavX6+9e/eqZs2aGjZsmMqVK6eRI0dKEjPscKiEhARNmjRJ1atXV48ePVS0aFGlpqZq1apVmjRpkkJCQsyO6HIoUQCcSmpqqj755BO1adNGdevWValSpfTFF1+oRIkSZkcDAMMCAgI0fvx4xcfHa+HChTp9+rS8vLzUtWtXvfjii9q5c6fZEZHHde7cWTVr1tSePXsUGRmpEydOaObMmWbHcnlcE4VMeXh4aMGCBfL19ZUk9enTR5GRkSpbtmyG/bp06WJGPLiYbdu2af78+VqyZIkqVaqkgQMHqm/fvpQnAC7n3Llz+vjjjxUVFaU9e/ZwrQruipeXl0aMGKFhw4apevXq9nGuvctZlChkysPjzhOVLDkNR/Hw8FCFChUUFhamhg0bZrofpR2AK9m5c6caNGhgdgzkYT/99JPmzZunpUuXqnbt2urXr5969+6tcuXKUaJyECUKgFOgtANwNZMnT9YzzzxjX9X2+++/V6NGjZQ/f35Jf6+eNmbMGM2ePdvMmHARKSkpWrp0qaKiorRt2zalpaVp2rRpGjRokIoUKWJ2PJdDiQIAAMgBnp6eOnnypMqUKSPp7/v27Nq1S1WqVJEkJSYmyt/fn18OweH279+vefPmaeHChUpKSlLbtm21Zs0as2O5FBaWwB199tln6tatm+rWrau6deuqW7duWrZsmdmx4GbS09P1+eefmx0DALLs37+n5vfWyC01a9bU5MmT9ccff2jx4sVmx3FJlChkKj09Xb169VKvXr0UFxenatWqqVq1atq7d6969eql3r178x8CctyhQ4f04osvqnz58nrkkUfMjgMAQJ7h6emphx9+mFmoHECJQqamT5+ub775RmvWrNFvv/2mVatWadWqVdq/f79WrlypDRs2aPr06WbHhAu6fPmyPvroIz344IOqWbOmfvjhB40fP15//PGH2dEAAADkZXYAOK/58+fr3Xff1X/+85+btnXp0kWTJ0/W9OnTNWrUqNwPB5cUGxurDz/8UEuWLFHVqlX1+OOP64cfftDs2bNZXQhAnvThhx+qcOHCkqTr168rOjpapUqVkvT3whIA8iYWlkCmChYsqP3796tChQq33H706FHVqlVLly9fzuVkcEX16tVTcnKyHnvsMT3++OOqU6eOJO5zASDvqlSpkiwWyx33i4+Pz4U0AByJmShkqmDBgkpKSsq0RCUnJ6tAgQK5nAquav/+/erVq5datmxJYQLgEo4cOWJ2BAA5hGuikKlmzZrp/fffz3S71WpVs2bNcjERXNnhw4dVs2ZNDRs2TOXLl9fo0aP1v//9L0u/xQWAvOrPP/80OwKAbKBEIVMvvfSS5s2bp549e2rbtm1KTk7W+fPn9dNPP6lHjx6KiorSSy+9ZHZMuIh77rlHL730kg4dOqSFCxcqISFB999/v/0aggMHDpgdEQAcJiEhQc8884yqV69udhQA2UCJQqbuu+8+LV26VJs3b1azZs1UvHhxlShRQvfff782b96sxYsX6/777zc7JlxQq1at9PHHH+vkyZOaNWuWNm3apFq1aqlevXpmRwOALDt37pz69OmjUqVKyd/fXzNmzFB6errGjx+vKlWqKDY2VvPnzzc7JoBsYGEJ3NGlS5e0fv16HTx4UJJUo0YNPfTQQ/Lx8TE5GdzJrl27FBUVpRkzZpgdBQCyZOjQoVq3bp169Oih9evXKy4uTu3atZOHh4defvllNW3a1OyIALKJEgUAAJADKlSooOjoaLVq1UpHjhxRlSpVNHbsWL311ltmRwNwlyhRAJxCy5Yt77iIhMVi0caNG3MpEQDcHS8vLx0/flzlypWTJPn4+Gj79u2sQAq4AJY4B+AUgoODM9124cIFffLJJ0pNTc29QABwl2w2m7y8/v+PWp6enipYsKCJiQA4CjNRAJzW9evXZbVa9eabb8rX11dvvPGGevfubXYsAMgSDw8P1a1b116k9uzZo1q1asnb2zvDfjt37jQjHoC7wEwUAKe0aNEijR8/XpcvX9arr76qIUOGZPiNLgA4uwkTJmR43rVrV5OSAHA0ZqKQqevXrystLU358+e3jyUmJmrOnDlKSUlRly5d1Lx5cxMTwhWtW7dOY8eOVXx8vEaPHq2IiAgVKlTI7FgAAAB2lChkauDAgfL29tZ///tfSX9fl1KnTh1duXJF5cqVU1xcnFavXq2OHTuanBSuYNu2bRozZox++uknPfXUU3rppZdUqlQps2MBgEPs2bPHftPwGjVqcN87II+jRCFTNWrU0KxZs/TQQw9JkqxWq9566y3FxcXJ19dXY8aM0bZt27R582aTk8IVeHh4qGDBghoyZIgqV66c6X4jRozIxVQAcHe2bdumwYMHKy4uTjd+5LJYLKpTp47mzZunkJAQkxMCyA5KFDJVqFAh/frrr/YfaLt166by5cvbb3YaFxen0NBQnTp1ysyYcBGVKlXK0hLnhw8fzqVEAHB34uLi1KRJE9WuXVvPPvusateubR9/7733tH//fv30008seQ7kQZQoZKpkyZLaunWr/Zu7v7+/3n33XT3++OOSpMOHD6tu3bq6dOmSmTEBAHBKPXv21PXr17V8+fKbfklks9nUrVs35cuXT59++qlJCQFkl4fZAeC8goODtXDhQknS1q1blZiYqFatWtm3//777/L39zcrHlxMq1atlJSUZHYMAHCYzZs368UXX7zlLLvFYtGLL77IKfFAHsV6wcjU+PHj1aFDB3366ac6efKkBgwYYL/ruiStXLlS999/v4kJ4Uq2bNmiq1evmh0DABzmwoULKlu2bKbb/fz8dOHChVxMBMBRKFHIVIsWLbRjxw59/fXX8vPzU48ePTJsDw4OVuPGjU1KBwCAc6tYsaK2bdumgICAW27/+eefVbFixVxOBcARuCYKgFPw8PDQpk2bVKJEidvux7LAAPKKCRMmKDo6Wl988YXq1q2bYdsvv/yizp07q3///nr99ddNSggguyhRyNTTTz+tyZMnq3DhwpKkxYsXq0uXLvYbnyYlJemxxx7Tl19+aWZMuAgPDw9ZLBbd6lvSjXGLxaK0tDQT0gGAcVeuXFHr1q31888/q23btqpdu7ZsNpv27dunb775Ro0bN9amTZtUoEABs6MCMIgShUx5enrq5MmTKlOmjCSpaNGi2rVrl6pUqSJJSkxMlL+/Pz/UwiE8PDy0bds2lS5d+rb7ceoLgLzk6tWreu+997R48eIMN9vt3bu3nn32WV27ds3+y0oAeQclCpny8PBQQkKCvUQVKVJEu3fvpkQhR/z7/QYAed17772nZ599NtPtFy5cUPv27fX999/nYioAjsAS5wAAADngxRdf1EcffXTLbSkpKWrfvr3++uuvXE4FwBEoUQCcQosWLeTt7W12DABwmIULF2ro0KFas2ZNhvGLFy+qXbt2On36NPeJAvIoljjHbY0fP14+Pj6S/j6v+80335Svr68k6dKlS2ZGg4t55513VKRIkUy3p6amavXq1erZs2cupgKA7OvevbuSkpLUp08fffHFFwoNDVVKSoo6dOigxMREffvttxnuvwgg7+CaKGQqNDT0lndZ/zd+iwZHYCETAK5q8uTJevPNN7V69WqNHz9ef/75p7799luVL1/e7GgAsomZKGRqy5YtZkeAG/n373Nu9fsdfucDIC964YUXdPbsWbVu3VqVKlXSli1bKFBAHkeJQqaqVKmi2NhYlSxZ0uwogCRlaWYUAJxFt27dMjzPly+fSpUqpZEjR2YYX7FiRW7GAuAAlChk6siRI5w6BQBANt24hviGPn36mJQEgKNRogA4jbi4OCUkJEj6+9S93377TRcvXpQknTlzxsxoAGDY/PnzzY4AIIewsAQy5eHhoQULFtz0m7R/69KlSy4lgivz8PCQxWK55XVPN8YtFguzowAAwHSUKGTKw+POtxHjh1o4ytGjR7O0X8WKFXM4CQAAwO1RopApDw8PJSQk2JecBgAAAMA1UbgNVkJDbtqzZ0+W9qtXr14OJwEAALg9ShQylZVJyl9//VV169bNhTRwdcHBwZleE3UDp48CAABnQIlC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\n"},"metadata":{}}]},{"cell_type":"markdown","metadata":{"id":"1jCZfwK2Sage"},"source":["----"]},{"cell_type":"markdown","metadata":{"id":"LLan66cXSagf"},"source":["## Questions 2: Show the number of missions in time for each of the countries involved.\n","\n","Keywords: `group by`, `parse date`, `plot`\n","\n","Let's select the relevant columns:"]},{"cell_type":"code","metadata":{"id":"BXNKt5PHSagf","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291600810,"user_tz":480,"elapsed":132,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"d7fa3de3-910c-48f4-a048-df37ea959196"},"source":["missions_countries = Bombing_Operations.selectExpr([\"to_date(MissionDate) as MissionDate\", \"ContryFlyingMission\"])\n","missions_countries"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["DataFrame[MissionDate: date, ContryFlyingMission: string]"]},"metadata":{},"execution_count":23}]},{"cell_type":"markdown","metadata":{"id":"da9IeKntSagh"},"source":["The filed MissionDate is converted to a Python `date` object.\n","\n","Now we can group by `MissionDate` and `ContryFlyingMission` to get the count:"]},{"cell_type":"code","metadata":{"id":"TLza0bF9Sagh","colab":{"base_uri":"https://localhost:8080/","height":204},"executionInfo":{"status":"ok","timestamp":1736291634638,"user_tz":480,"elapsed":26056,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"d5ba8b63-df45-40b3-e7b6-336268839a6a"},"source":["missions_by_date = missions_countries\\\n","                    .groupBy([\"MissionDate\", \"ContryFlyingMission\"])\\\n","                    .agg(count(\"*\").alias(\"MissionsCount\"))\\\n","                    .sort(asc(\"MissionDate\")).toPandas()\n","missions_by_date.head()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["  MissionDate       ContryFlyingMission  MissionsCount\n","0  1965-10-01  UNITED STATES OF AMERICA            447\n","1  1965-10-02  UNITED STATES OF AMERICA            652\n","2  1965-10-03  UNITED STATES OF AMERICA            608\n","3  1965-10-04  UNITED STATES OF AMERICA            532\n","4  1965-10-05  UNITED STATES OF AMERICA            697"],"text/html":["\n","  <div id=\"df-54416321-1e88-4d6f-83b5-6d81f34cb38f\" class=\"colab-df-container\">\n","    <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>MissionDate</th>\n","      <th>ContryFlyingMission</th>\n","      <th>MissionsCount</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>1965-10-01</td>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>447</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>1965-10-02</td>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>652</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>1965-10-03</td>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>608</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>1965-10-04</td>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>532</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>1965-10-05</td>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>697</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>\n","    <div class=\"colab-df-buttons\">\n","\n","  <div class=\"colab-df-container\">\n","    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-54416321-1e88-4d6f-83b5-6d81f34cb38f')\"\n","            title=\"Convert this dataframe to an interactive table.\"\n","            style=\"display:none;\">\n","\n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n","    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n","  </svg>\n","    </button>\n","\n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    .colab-df-buttons div {\n","      margin-bottom: 4px;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","    <script>\n","      const buttonEl =\n","        document.querySelector('#df-54416321-1e88-4d6f-83b5-6d81f34cb38f button.colab-df-convert');\n","      buttonEl.style.display =\n","        google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","      async function convertToInteractive(key) {\n","        const element = document.querySelector('#df-54416321-1e88-4d6f-83b5-6d81f34cb38f');\n","        const dataTable =\n","          await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                    [key], {});\n","        if (!dataTable) return;\n","\n","        const docLinkHtml = 'Like what you see? Visit the ' +\n","          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","          + ' to learn more about interactive tables.';\n","        element.innerHTML = '';\n","        dataTable['output_type'] = 'display_data';\n","        await google.colab.output.renderOutput(dataTable, element);\n","        const docLink = document.createElement('div');\n","        docLink.innerHTML = docLinkHtml;\n","        element.appendChild(docLink);\n","      }\n","    </script>\n","  </div>\n","\n","\n","<div id=\"df-cff7283c-ef8a-4c26-a70b-545e108904e9\">\n","  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-cff7283c-ef8a-4c26-a70b-545e108904e9')\"\n","            title=\"Suggest charts\"\n","            style=\"display:none;\">\n","\n","<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","     width=\"24px\">\n","    <g>\n","        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n","    </g>\n","</svg>\n","  </button>\n","\n","<style>\n","  .colab-df-quickchart {\n","      --bg-color: #E8F0FE;\n","      --fill-color: #1967D2;\n","      --hover-bg-color: #E2EBFA;\n","      --hover-fill-color: #174EA6;\n","      --disabled-fill-color: #AAA;\n","      --disabled-bg-color: #DDD;\n","  }\n","\n","  [theme=dark] .colab-df-quickchart {\n","      --bg-color: #3B4455;\n","      --fill-color: #D2E3FC;\n","      --hover-bg-color: #434B5C;\n","      --hover-fill-color: #FFFFFF;\n","      --disabled-bg-color: #3B4455;\n","      --disabled-fill-color: #666;\n","  }\n","\n","  .colab-df-quickchart {\n","    background-color: var(--bg-color);\n","    border: none;\n","    border-radius: 50%;\n","    cursor: pointer;\n","    display: none;\n","    fill: var(--fill-color);\n","    height: 32px;\n","    padding: 0;\n","    width: 32px;\n","  }\n","\n","  .colab-df-quickchart:hover {\n","    background-color: var(--hover-bg-color);\n","    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n","    fill: var(--button-hover-fill-color);\n","  }\n","\n","  .colab-df-quickchart-complete:disabled,\n","  .colab-df-quickchart-complete:disabled:hover {\n","    background-color: var(--disabled-bg-color);\n","    fill: var(--disabled-fill-color);\n","    box-shadow: none;\n","  }\n","\n","  .colab-df-spinner {\n","    border: 2px solid var(--fill-color);\n","    border-color: transparent;\n","    border-bottom-color: var(--fill-color);\n","    animation:\n","      spin 1s steps(1) infinite;\n","  }\n","\n","  @keyframes spin {\n","    0% {\n","      border-color: transparent;\n","      border-bottom-color: var(--fill-color);\n","      border-left-color: var(--fill-color);\n","    }\n","    20% {\n","      border-color: transparent;\n","      border-left-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","    }\n","    30% {\n","      border-color: transparent;\n","      border-left-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","      border-right-color: var(--fill-color);\n","    }\n","    40% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","    }\n","    60% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","    }\n","    80% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","      border-bottom-color: var(--fill-color);\n","    }\n","    90% {\n","      border-color: transparent;\n","      border-bottom-color: var(--fill-color);\n","    }\n","  }\n","</style>\n","\n","  <script>\n","    async function quickchart(key) {\n","      const quickchartButtonEl =\n","        document.querySelector('#' + key + ' button');\n","      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n","      quickchartButtonEl.classList.add('colab-df-spinner');\n","      try {\n","        const charts = await google.colab.kernel.invokeFunction(\n","            'suggestCharts', [key], {});\n","      } catch (error) {\n","        console.error('Error during call to suggestCharts:', error);\n","      }\n","      quickchartButtonEl.classList.remove('colab-df-spinner');\n","      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n","    }\n","    (() => {\n","      let quickchartButtonEl =\n","        document.querySelector('#df-cff7283c-ef8a-4c26-a70b-545e108904e9 button');\n","      quickchartButtonEl.style.display =\n","        google.colab.kernel.accessAllowed ? 'block' : 'none';\n","    })();\n","  </script>\n","</div>\n","\n","    </div>\n","  </div>\n"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"dataframe","variable_name":"missions_by_date","summary":"{\n  \"name\": \"missions_by_date\",\n  \"rows\": 9703,\n  \"fields\": [\n    {\n      \"column\": \"MissionDate\",\n      \"properties\": {\n        \"dtype\": \"date\",\n        \"min\": \"1965-10-01\",\n        \"max\": \"1975-06-30\",\n        \"num_unique_values\": 3560,\n        \"samples\": [\n          \"1975-06-15\",\n          \"1966-04-03\",\n          \"1975-03-02\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"ContryFlyingMission\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"VIETNAM (SOUTH)\",\n          \"KOREA (SOUTH)\",\n          \"AUSTRALIA\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MissionsCount\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 639,\n        \"min\": 1,\n        \"max\": 3832,\n        \"num_unique_values\": 1881,\n        \"samples\": [\n          1376,\n          2848,\n          1986\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"}},"metadata":{},"execution_count":24}]},{"cell_type":"markdown","metadata":{"id":"IAhOE55wSagj"},"source":["Now we can plot the content with a different series for each country:"]},{"cell_type":"code","metadata":{"id":"wLq6ulAySagl","colab":{"base_uri":"https://localhost:8080/","height":542},"executionInfo":{"status":"ok","timestamp":1736291658228,"user_tz":480,"elapsed":791,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"be62371d-3f05-4619-bc2b-82d6013991c2"},"source":["fig = plt.figure(figsize=(10, 6))\n","\n","# iterate the different groups to create a different series\n","for country, missions in missions_by_date.groupby(\"ContryFlyingMission\"):\n","    plt.plot(missions[\"MissionDate\"], missions[\"MissionsCount\"], label=country)\n","\n","plt.legend(loc='best')"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<matplotlib.legend.Legend at 0x792b26676380>"]},"metadata":{},"execution_count":25},{"output_type":"display_data","data":{"text/plain":["<Figure size 1000x600 with 1 Axes>"],"image/png":"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\n"},"metadata":{}}]},{"cell_type":"markdown","metadata":{"id":"GEMzTwxGSagp"},"source":["We can observe how South Vietnam increased its missions starting from 1970. The drop in 1973 is motivated by the [Paris Peace Accords](https://en.wikipedia.org/wiki/Paris_Peace_Accords) that took place on January 27th, 1973, to establish peace in Vietnam and end the war."]},{"cell_type":"markdown","metadata":{"id":"dl6m0B6iSagp"},"source":["----"]},{"cell_type":"markdown","metadata":{"id":"uEwBspLySagp"},"source":["## Question 3: Who bombed this location?\n","\n","Keywords: `RDD map reduce` `cache` `save results`"]},{"cell_type":"code","metadata":{"id":"uq6jqsgBSagq"},"source":["jun_29_operations = Bombing_Operations.where(\"MissionDate = '1966-06-29' AND TargetCountry='NORTH VIETNAM'\")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"Qurjwd0zSagr"},"source":["Which coutries scheduled missions that day?"]},{"cell_type":"code","metadata":{"id":"uoiVSE7NSags","colab":{"base_uri":"https://localhost:8080/","height":111},"executionInfo":{"status":"ok","timestamp":1736291676588,"user_tz":480,"elapsed":12769,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"19749d3a-2ce6-46d6-9f3c-bd6a63251673"},"source":["jun_29_operations.groupBy(\"ContryFlyingMission\").agg(count(\"*\").alias(\"MissionsCount\")).toPandas()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["        ContryFlyingMission  MissionsCount\n","0           VIETNAM (SOUTH)              6\n","1  UNITED STATES OF AMERICA            389"],"text/html":["\n","  <div id=\"df-d1430189-015c-415c-af1d-85ef1e7f528e\" class=\"colab-df-container\">\n","    <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>ContryFlyingMission</th>\n","      <th>MissionsCount</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>VIETNAM (SOUTH)</td>\n","      <td>6</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>UNITED STATES OF AMERICA</td>\n","      <td>389</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>\n","    <div class=\"colab-df-buttons\">\n","\n","  <div class=\"colab-df-container\">\n","    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d1430189-015c-415c-af1d-85ef1e7f528e')\"\n","            title=\"Convert this dataframe to an interactive table.\"\n","            style=\"display:none;\">\n","\n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n","    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n","  </svg>\n","    </button>\n","\n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    .colab-df-buttons div {\n","      margin-bottom: 4px;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","    <script>\n","      const buttonEl =\n","        document.querySelector('#df-d1430189-015c-415c-af1d-85ef1e7f528e button.colab-df-convert');\n","      buttonEl.style.display =\n","        google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","      async function convertToInteractive(key) {\n","        const element = document.querySelector('#df-d1430189-015c-415c-af1d-85ef1e7f528e');\n","        const dataTable =\n","          await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                    [key], {});\n","        if (!dataTable) return;\n","\n","        const docLinkHtml = 'Like what you see? Visit the ' +\n","          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","          + ' to learn more about interactive tables.';\n","        element.innerHTML = '';\n","        dataTable['output_type'] = 'display_data';\n","        await google.colab.output.renderOutput(dataTable, element);\n","        const docLink = document.createElement('div');\n","        docLink.innerHTML = docLinkHtml;\n","        element.appendChild(docLink);\n","      }\n","    </script>\n","  </div>\n","\n","\n","<div id=\"df-0b0e1706-a187-4df7-b8fc-5f820055ca16\">\n","  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0b0e1706-a187-4df7-b8fc-5f820055ca16')\"\n","            title=\"Suggest charts\"\n","            style=\"display:none;\">\n","\n","<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","     width=\"24px\">\n","    <g>\n","        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n","    </g>\n","</svg>\n","  </button>\n","\n","<style>\n","  .colab-df-quickchart {\n","      --bg-color: #E8F0FE;\n","      --fill-color: #1967D2;\n","      --hover-bg-color: #E2EBFA;\n","      --hover-fill-color: #174EA6;\n","      --disabled-fill-color: #AAA;\n","      --disabled-bg-color: #DDD;\n","  }\n","\n","  [theme=dark] .colab-df-quickchart {\n","      --bg-color: #3B4455;\n","      --fill-color: #D2E3FC;\n","      --hover-bg-color: #434B5C;\n","      --hover-fill-color: #FFFFFF;\n","      --disabled-bg-color: #3B4455;\n","      --disabled-fill-color: #666;\n","  }\n","\n","  .colab-df-quickchart {\n","    background-color: var(--bg-color);\n","    border: none;\n","    border-radius: 50%;\n","    cursor: pointer;\n","    display: none;\n","    fill: var(--fill-color);\n","    height: 32px;\n","    padding: 0;\n","    width: 32px;\n","  }\n","\n","  .colab-df-quickchart:hover {\n","    background-color: var(--hover-bg-color);\n","    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n","    fill: var(--button-hover-fill-color);\n","  }\n","\n","  .colab-df-quickchart-complete:disabled,\n","  .colab-df-quickchart-complete:disabled:hover {\n","    background-color: var(--disabled-bg-color);\n","    fill: var(--disabled-fill-color);\n","    box-shadow: none;\n","  }\n","\n","  .colab-df-spinner {\n","    border: 2px solid var(--fill-color);\n","    border-color: transparent;\n","    border-bottom-color: var(--fill-color);\n","    animation:\n","      spin 1s steps(1) infinite;\n","  }\n","\n","  @keyframes spin {\n","    0% {\n","      border-color: transparent;\n","      border-bottom-color: var(--fill-color);\n","      border-left-color: var(--fill-color);\n","    }\n","    20% {\n","      border-color: transparent;\n","      border-left-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","    }\n","    30% {\n","      border-color: transparent;\n","      border-left-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","      border-right-color: var(--fill-color);\n","    }\n","    40% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","      border-top-color: var(--fill-color);\n","    }\n","    60% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","    }\n","    80% {\n","      border-color: transparent;\n","      border-right-color: var(--fill-color);\n","      border-bottom-color: var(--fill-color);\n","    }\n","    90% {\n","      border-color: transparent;\n","      border-bottom-color: var(--fill-color);\n","    }\n","  }\n","</style>\n","\n","  <script>\n","    async function quickchart(key) {\n","      const quickchartButtonEl =\n","        document.querySelector('#' + key + ' button');\n","      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n","      quickchartButtonEl.classList.add('colab-df-spinner');\n","      try {\n","        const charts = await google.colab.kernel.invokeFunction(\n","            'suggestCharts', [key], {});\n","      } catch (error) {\n","        console.error('Error during call to suggestCharts:', error);\n","      }\n","      quickchartButtonEl.classList.remove('colab-df-spinner');\n","      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n","    }\n","    (() => {\n","      let quickchartButtonEl =\n","        document.querySelector('#df-0b0e1706-a187-4df7-b8fc-5f820055ca16 button');\n","      quickchartButtonEl.style.display =\n","        google.colab.kernel.accessAllowed ? 'block' : 'none';\n","    })();\n","  </script>\n","</div>\n","\n","    </div>\n","  </div>\n"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"dataframe","summary":"{\n  \"name\": \"jun_29_operations\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"ContryFlyingMission\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"UNITED STATES OF AMERICA\",\n          \"VIETNAM (SOUTH)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MissionsCount\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 270,\n        \"min\": 6,\n        \"max\": 389,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          389,\n          6\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"}},"metadata":{},"execution_count":27}]},{"cell_type":"markdown","metadata":{"id":"-0Q2bS4KSagt"},"source":["Most of the operation that day were performed by USA airplanes."]},{"cell_type":"code","metadata":{"id":"cLec-CkmSagu","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291681313,"user_tz":480,"elapsed":3139,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"27a8ffbe-0497-49ef-c831-f9d4f697802d"},"source":["jun_29_operations.take(1)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[Row(AirCraft='F-105', ContryFlyingMission='UNITED STATES OF AMERICA', MissionDate='1966-06-29', OperationSupported='STEEL TIGER', PeriodOfDay='D', TakeoffLocation='TAKHLI', TargetCountry='NORTH VIETNAM', TimeOnTarget=310.0, WeaponType='1000LB MK-83', WeaponsLoadedWeight=-1)]"]},"metadata":{},"execution_count":28}]},{"cell_type":"markdown","metadata":{"id":"77XdZuNDSagv"},"source":["You can specify to cache the content in memory:"]},{"cell_type":"code","metadata":{"id":"q45a-OYwSagw","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291682635,"user_tz":480,"elapsed":212,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"bb8f3534-43e5-4ad2-a676-5901348b0ae7"},"source":["jun_29_operations.cache()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["DataFrame[AirCraft: string, ContryFlyingMission: string, MissionDate: string, OperationSupported: string, PeriodOfDay: string, TakeoffLocation: string, TargetCountry: string, TimeOnTarget: double, WeaponType: string, WeaponsLoadedWeight: bigint]"]},"metadata":{},"execution_count":29}]},{"cell_type":"markdown","metadata":{"id":"feWOqgKISagx"},"source":["Now you can count the number of rows and move the content to the cache:"]},{"cell_type":"code","metadata":{"id":"vIpLEQrlSagx","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291698871,"user_tz":480,"elapsed":15039,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"7bd25bce-c576-442a-c016-2d253ad1ee96"},"source":["%time jun_29_operations.count()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["CPU times: user 86.3 ms, sys: 9.65 ms, total: 96 ms\n","Wall time: 14.9 s\n"]},{"output_type":"execute_result","data":{"text/plain":["395"]},"metadata":{},"execution_count":30}]},{"cell_type":"markdown","metadata":{"id":"uCTEq5LZSagz"},"source":["The second time the content is cached and the operation is much faster:"]},{"cell_type":"code","metadata":{"id":"6oZtHYspSagz","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291700194,"user_tz":480,"elapsed":271,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"612397ed-14c7-4042-8bdd-f9b79ec7d519"},"source":["%time jun_29_operations.count()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["CPU times: user 1.07 ms, sys: 896 µs, total: 1.96 ms\n","Wall time: 144 ms\n"]},{"output_type":"execute_result","data":{"text/plain":["395"]},"metadata":{},"execution_count":31}]},{"cell_type":"markdown","metadata":{"id":"_4Hzke2kSag1"},"source":["You can also save the results on a file..."]},{"cell_type":"code","metadata":{"id":"4_2p0Ha9Sag1"},"source":["jun_29_operations.write.mode('overwrite').json(\"jun_29_operations.json\")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"OJwG61TNSag3"},"source":["... and read from the file:"]},{"cell_type":"code","metadata":{"id":"JTe1l78_Sag4"},"source":["jun_29_operations = spark.read.json(\"jun_29_operations.json\")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"DEW08u3_Sag6"},"source":["We can use the simple DataFrame API..."]},{"cell_type":"code","metadata":{"id":"UYO-CuHISag8","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291718872,"user_tz":480,"elapsed":335,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"912e7ca3-aff4-4909-c79d-7f5167ecc5d6"},"source":["TakeoffLocationCounts = jun_29_operations\\\n","                            .groupBy(\"TakeoffLocation\").agg(count(\"*\").alias(\"MissionsCount\"))\\\n","                            .sort(desc(\"MissionsCount\"))\n","TakeoffLocationCounts.show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+----------------+-------------+\n","| TakeoffLocation|MissionsCount|\n","+----------------+-------------+\n","|   CONSTELLATION|           87|\n","|          TAKHLI|           56|\n","|           KORAT|           55|\n","|        UDORN AB|           44|\n","|         UBON AB|           44|\n","|          DANANG|           35|\n","|          RANGER|           35|\n","|    TAN SON NHUT|           26|\n","|HANCOCK (CVA-19)|           10|\n","|    CAM RANH BAY|            2|\n","|         CUBI PT|            1|\n","+----------------+-------------+\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"2PHZStWQSag9"},"source":["... or the explicit Map/Reduce format with RDDs.\n","\n","First we emit a pair in the format (Location, 1):"]},{"cell_type":"code","metadata":{"id":"OgEeKdtYSag9","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291722523,"user_tz":480,"elapsed":1368,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"b2591c56-b430-4cf9-e296-fc2c00f8ec9f"},"source":["all_locations = jun_29_operations.rdd.map(lambda row: (row.TakeoffLocation, 1))\n","all_locations.take(3)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[('TAKHLI', 1), ('DANANG', 1), ('CONSTELLATION', 1)]"]},"metadata":{},"execution_count":35}]},{"cell_type":"markdown","metadata":{"id":"Akm81xVxSag_"},"source":["Then, we sum counters in the reduce step, and we sort by count:"]},{"cell_type":"code","metadata":{"id":"_hVvIF_WSag_","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291724844,"user_tz":480,"elapsed":1380,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"2839c3c8-6f41-4138-9a23-91e730b950b0"},"source":["locations_counts_rdd = all_locations.reduceByKey(lambda a, b: a+b).sortBy(lambda r: -r[1])\n","locations_counts_rdd.take(3)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[('CONSTELLATION', 87), ('TAKHLI', 56), ('KORAT', 55)]"]},"metadata":{},"execution_count":36}]},{"cell_type":"markdown","metadata":{"id":"od5h9c6qSahB"},"source":["Now we can convert the RDD in dataframe by mapping the pairs to objects of type `Row`"]},{"cell_type":"code","metadata":{"id":"KNDn84R_SahB","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291726580,"user_tz":480,"elapsed":1045,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"e5eef045-0637-4c02-dad2-60ea5942eb75"},"source":["locations_counts_with_schema = locations_counts_rdd.map(lambda r: Row(TakeoffLocation=r[0], MissionsCount=r[1]))\n","locations_counts = spark.createDataFrame(locations_counts_with_schema)\n","locations_counts.show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+----------------+-------------+\n","| TakeoffLocation|MissionsCount|\n","+----------------+-------------+\n","|   CONSTELLATION|           87|\n","|          TAKHLI|           56|\n","|           KORAT|           55|\n","|         UBON AB|           44|\n","|        UDORN AB|           44|\n","|          DANANG|           35|\n","|          RANGER|           35|\n","|    TAN SON NHUT|           26|\n","|HANCOCK (CVA-19)|           10|\n","|    CAM RANH BAY|            2|\n","|         CUBI PT|            1|\n","+----------------+-------------+\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"cE8asfBPSahD"},"source":["<img style=\"float: right;\" src=\"https://raw.githubusercontent.com/epfl-ada/2019/c17af0d3c73f11cb083717b7408fedd86245dc4d/Tutorials/04%20-%20Scaling%20Up/img/USS_Constellation.jpg\">\n","\n","\n","That day the most common take-off location was the ship USS Constellation (CV-64). We cannot univocally identify one take off location, but we can reduce the possible candidates. Next steps: explore TimeOnTarget feature.\n","\n","_USS Constellation (CV-64), a Kitty Hawk-class supercarrier, was the third ship of the United States Navy to be named in honor of the \"new constellation of stars\" on the flag of the United States. One of the fastest ships in the Navy, as proven by her victory during a battlegroup race held in 1985, she was nicknamed \"Connie\" by her crew and officially as \"America's Flagship\"._"]},{"cell_type":"markdown","metadata":{"id":"lKKM6VS8SahD"},"source":["----"]},{"cell_type":"markdown","metadata":{"id":"aaiVcdF8SahD"},"source":["## Questions 4: What is the most used aircraft type (number of missions)?\n","\n","Keywords: `join` `group by`"]},{"cell_type":"markdown","metadata":{"id":"xnV48FZlSahG"},"source":["Let's check the content of `Aircraft_Glossary`:"]},{"cell_type":"code","metadata":{"id":"yovhBV5sSahI","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291730391,"user_tz":480,"elapsed":135,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"e3b7775c-72b0-47e9-8803-e86f48272e77"},"source":["Aircraft_Glossary.show(5)"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------+--------------------+--------------------+\n","|AirCraft|        AirCraftName|        AirCraftType|\n","+--------+--------------------+--------------------+\n","|     A-1|Douglas A-1 Skyra...|         Fighter Jet|\n","|    A-26|Douglas A-26 Invader|        Light Bomber|\n","|    A-37|Cessna A-37 Drago...|Light ground-atta...|\n","|     A-4|McDonnell Douglas...|         Fighter Jet|\n","|     A-5|North American A-...|          Bomber Jet|\n","+--------+--------------------+--------------------+\n","only showing top 5 rows\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"yO0ExxRoSahJ"},"source":["We are interested in the filed `AirCraftType`."]},{"cell_type":"code","metadata":{"id":"Z4DnpCTmSahJ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291732406,"user_tz":480,"elapsed":361,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"4ac7cb67-1941-4475-c207-ea96b9192b65"},"source":["Bombing_Operations.select(\"AirCraft\").show(5)"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------+\n","|AirCraft|\n","+--------+\n","|   EC-47|\n","|   EC-47|\n","|    RF-4|\n","|     A-1|\n","|    A-37|\n","+--------+\n","only showing top 5 rows\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"Z97Y9DuUSahK"},"source":["We can join on the column `AirCraft` of both dataframes."]},{"cell_type":"markdown","metadata":{"id":"9txA3mx1SahL"},"source":["With Dataframe API:"]},{"cell_type":"code","metadata":{"id":"s3j3Fu8kSahL","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291734256,"user_tz":480,"elapsed":151,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"3c8761f5-f716-4e1f-d9d8-5f573d3ac7fe"},"source":["missions_joined = Bombing_Operations.join(Aircraft_Glossary,\n","                                          Bombing_Operations.AirCraft == Aircraft_Glossary.AirCraft)\n","missions_joined"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["DataFrame[AirCraft: string, ContryFlyingMission: string, MissionDate: string, OperationSupported: string, PeriodOfDay: string, TakeoffLocation: string, TargetCountry: string, TimeOnTarget: double, WeaponType: string, WeaponsLoadedWeight: bigint, AirCraft: string, AirCraftName: string, AirCraftType: string]"]},"metadata":{},"execution_count":40}]},{"cell_type":"markdown","metadata":{"id":"QhQbN8AOSahN"},"source":["We can select only the field we are interested in:"]},{"cell_type":"code","metadata":{"id":"s5KgFBXASahO","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291736693,"user_tz":480,"elapsed":599,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"3ff4027f-550c-4b47-8d36-c26bbec7ad83"},"source":["missions_aircrafts = missions_joined.select(\"AirCraftType\")\n","missions_aircrafts.show(5)"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------------------+\n","|        AirCraftType|\n","+--------------------+\n","|Military Transpor...|\n","|Military Transpor...|\n","|  Fighter bomber jet|\n","|         Fighter Jet|\n","|Light ground-atta...|\n","+--------------------+\n","only showing top 5 rows\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"giUuCERTSahT"},"source":["And finally we can group by `AirCraftType` and count:"]},{"cell_type":"code","metadata":{"id":"S0QytpygSahU","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736291760326,"user_tz":480,"elapsed":22605,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"016fe4e3-6280-4d5b-8aae-d84feec4b6f5"},"source":["missions_aircrafts.groupBy(\"AirCraftType\").agg(count(\"*\").alias(\"MissionsCount\"))\\\n","                  .sort(desc(\"MissionsCount\"))\\\n","                  .show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------------------+-------------+\n","|        AirCraftType|MissionsCount|\n","+--------------------+-------------+\n","|  Fighter Jet Bomber|      1073126|\n","|         Fighter Jet|       882594|\n","|  Jet Fighter Bomber|       451385|\n","|     Attack Aircraft|       315246|\n","|Light ground-atta...|       267457|\n","|  Fighter bomber jet|       242231|\n","|Military Transpor...|       228426|\n","|  Utility Helicopter|       146653|\n","|    Strategic bomber|        99100|\n","|     Tactical Bomber|        82219|\n","|Observation Aircraft|        81820|\n","|Fixed wing ground...|        75058|\n","|Ground attack air...|        73843|\n","|Carrier-based Fig...|        58691|\n","|   Training Aircraft|        48435|\n","|       Light fighter|        39999|\n","|        Light Bomber|        39262|\n","|Light Tactical Bo...|        34738|\n","| Light Utility Plane|        28582|\n","|Observation/ Ligh...|        24491|\n","+--------------------+-------------+\n","only showing top 20 rows\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"2Y1043GMSahV"},"source":["In alternative we can rewrite this in pure SQL:"]},{"cell_type":"code","metadata":{"id":"980KMZCOSahV","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1736292034984,"user_tz":480,"elapsed":22062,"user":{"displayName":"Zhemin Huang","userId":"17477919057836646557"}},"outputId":"ba8f1eb2-db04-41ea-d766-a0f0a4b07b5c"},"source":["Bombing_Operations.createOrReplaceTempView(\"Bombing_Operations\")\n","Aircraft_Glossary.createOrReplaceTempView(\"Aircraft_Glossary\")\n","\n","query = \"\"\"\n","SELECT AirCraftType, count(*) MissionsCount\n","FROM Bombing_Operations bo\n","JOIN Aircraft_Glossary ag\n","ON bo.AirCraft = ag.AirCraft\n","GROUP BY AirCraftType\n","ORDER BY MissionsCount DESC\n","\"\"\"\n","\n","spark.sql(query).show()"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["+--------------------+-------------+\n","|        AirCraftType|MissionsCount|\n","+--------------------+-------------+\n","|  Fighter Jet Bomber|      1073126|\n","|         Fighter Jet|       882594|\n","|  Jet Fighter Bomber|       451385|\n","|     Attack Aircraft|       315246|\n","|Light ground-atta...|       267457|\n","|  Fighter bomber jet|       242231|\n","|Military Transpor...|       228426|\n","|  Utility Helicopter|       146653|\n","|    Strategic bomber|        99100|\n","|     Tactical Bomber|        82219|\n","|Observation Aircraft|        81820|\n","|Fixed wing ground...|        75058|\n","|Ground attack air...|        73843|\n","|Carrier-based Fig...|        58691|\n","|   Training Aircraft|        48435|\n","|       Light fighter|        39999|\n","|        Light Bomber|        39262|\n","|Light Tactical Bo...|        34738|\n","| Light Utility Plane|        28582|\n","|Observation/ Ligh...|        24491|\n","+--------------------+-------------+\n","only showing top 20 rows\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"ffrW-oV2SahW"},"source":["The aircrafts of type `Fighter Jet Bomber` participated in most of the missions.\n","\n","Note: This dataset would require further cleaning and normalization. See `Fighter Jet Bomber`, `Jet Fighter Bomber`, `Fighter bomber jet`"]}]}