{"id":4116,"date":"2026-05-01T17:49:35","date_gmt":"2026-05-01T17:49:35","guid":{"rendered":"https:\/\/ranaghazzi.com\/?p=4116"},"modified":"2026-05-04T12:27:24","modified_gmt":"2026-05-04T12:27:24","slug":"airflights-silver-layer","status":"publish","type":"post","link":"https:\/\/ranaghazzi.com\/?p=4116","title":{"rendered":"AirFlights Silver Layer"},"content":{"rendered":"<p><style>\n    .light-font-container, .light-font-container p, .light-font-container h2, .light-font-container li {<br \/>\n        font-weight: #FFFFFF !important;<br \/>\n    }<br \/>\n<\/style>\n<\/p>\n<div class=\"light-font-container\" style=\"background-color: #2b85d9; padding: 40px; border-radius: 15px;\">\n<h2 style=\"text-align: center;\">Air Flights Silver Layer &#8211; Data Cleaning &amp; Transformation<\/h2>\n<div style=\"height: 20px;\">\u00a0<\/div>\n\n\n<div class=\"wp-block-group has-contrast-color has-text-color has-link-color wp-elements-08938707038e132ce998e667938505a2 has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><strong>Tools: Databricks | Pandas | PyArrow | PySpark | Delta Lake <\/strong><\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Moving Airplane<\/title>\n  <style>\n    body {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      min-height: 100vh;\n      margin: 0;\n      background: ;\n    }\n\n    .sky {\n      width: 100%;\n      \/\/background: rgba(180, 220, 255, 0.18);\n      \/\/border: 1px solid rgba(180, 220, 255, 0.35);\n      border-radius: 16px;\n      height: 50px;\n      overflow: hidden;\n      position: relative;\n    }\n\n    .cloud {\n      position: absolute;\n      background: rgba(255, 255, 255, 0.35);\n      border-radius: 50px;\n    }\n    .cloud::before, .cloud::after {\n      content: '';\n      position: absolute;\n      background: rgba(255, 255, 255, 0.35);\n      border-radius: 50%;\n    }\n\n    .c1 { width: 80px; height: 24px; top: 30px; animation: driftCloud 14s linear infinite; }\n    .c1::before { width: 34px; height: 34px; top: -18px; left: 10px; }\n    .c1::after  { width: 24px; height: 24px; top: -12px; left: 36px; }\n\n    .c2 { width: 60px; height: 18px; top: 90px; animation: driftCloud 20s linear infinite 5s; }\n    .c2::before { width: 26px; height: 26px; top: -14px; left: 8px; }\n    .c2::after  { width: 18px; height: 18px; top: -8px; left: 28px; }\n\n    .c3 { width: 50px; height: 16px; top: 55px; animation: driftCloud 17s linear infinite 9s; }\n    .c3::before { width: 22px; height: 22px; top: -12px; left: 6px; }\n    .c3::after  { width: 16px; height: 16px; top: -7px; left: 24px; }\n\n    @keyframes driftCloud {\n      from { left: 110%; }\n      to   { left: -20%; }\n    }\n\n    .trail {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      height: 2px;\n      width: 70px;\n      background: linear-gradient(to left, transparent, rgba(180, 210, 255, 0.5));\n      border-radius: 2px;\n      animation: flyPlane 5s linear infinite;\n      margin-left: -70px;\n    }\n\n    .plane {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      animation: flyPlane 5s linear infinite;\n    }\n\n    @keyframes flyPlane {\n      from { left: -100px; }\n      to   { left: 110%; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <div class=\"sky\">\n    <div class=\"cloud c1\"><\/div>\n    <div class=\"cloud c2\"><\/div>\n    <div class=\"cloud c3\"><\/div>\n    <div class=\"trail\"><\/div>\n    <div class=\"plane\">\n      <svg width=\"72\" height=\"72\" viewBox=\"0 0 64 64\"  xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n        <path d=\"M60 28 L38 28 L26 8 L18 8 L26 28 L8 28 L4 22 L0 22 L4 32 L0 42 L4 42 L8 36 L26 36 L18 56 L26 56 L38 36 L60 36 C62.2 36 64 34.2 64 32 C64 29.8 62.2 28 60 28 Z\"\/>\n      <\/svg>\n    <\/div>\n  <\/div>\n\n<\/body>\n<\/html>\n\n\n\n<div style=\"height:17px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons alignwide is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/github.com\/Ranoush75\/AirFlights\/blob\/main\/Airflights-Silver.ipynb\" style=\"background-color:#c4c4c4;padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">GitHub<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-contrast-color has-text-color has-link-color wp-elements-94fc56bb37a00fc28dbbb948dc5dba7c\">Description:<\/h2>\n\n\n\n<p>This notebook implements a\u00a0Silver layer that  processes raw flight data from Bronze tables into cleaned, curated Silver tables.<\/p>\n\n\n\n<p><strong>What it does:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Reads Bronze data<\/strong>&nbsp;&#8211; Loads&nbsp;airflights_outbound&nbsp;and&nbsp;airflights_return&nbsp;tables from&nbsp;workspace.bronze<\/li>\n\n\n\n<li><strong>Cleans and transforms<\/strong>&nbsp;&#8211; Combines flights, adds search route formatting, converts duration strings to minutes, removes duplicates<\/li>\n\n\n\n<li><strong>Splits by flight type<\/strong>&nbsp;&#8211; Separates direct flights (0 stops) from connecting flights (&gt;0 stops)<\/li>\n\n\n\n<li><strong>Writes to Silver tables<\/strong>&nbsp;&#8211; Saves cleaned data to&nbsp;workspace.silver.airflights_direct&nbsp;and&nbsp;workspace.silver.airflights_connecting<\/li>\n\n\n\n<li><strong>Verifies output<\/strong>&nbsp;&#8211; Queries the silver tables to confirm successful load<\/li>\n<\/ol>\n\n\n\n<p><strong>Schema includes:<\/strong>&nbsp;flight number, airline, origin\/destination, times, duration, stops, price, currency, trip type, and fetch timestamp.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Air Flights Silver Layer &#8211; Data Cleaning &amp; Transformation \u00a0 Tools: Databricks | Pandas | PyArrow | PySpark | Delta Lake Moving Airplane Description: This notebook implements a\u00a0Silver layer that processes raw flight data from Bronze tables into cleaned, curated Silver tables. What it does: Schema includes:&nbsp;flight number, airline, origin\/destination, times, duration, stops, price, currency, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4116","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AirFlights Silver Layer - Rana Nasri Ghazzi<\/title>\n<meta name=\"description\" content=\"Explore Rana Ghazzi&#039;s data analytics portfolio \u2014 dashboards, visualizations, and insights built with Tableau, Power BI &amp; Python.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ranaghazzi.com\/?p=4116\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AirFlights Silver Layer - Rana Nasri Ghazzi\" \/>\n<meta property=\"og:description\" content=\"Explore Rana Ghazzi&#039;s data analytics portfolio \u2014 dashboards, visualizations, and insights built with Tableau, Power BI &amp; Python.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ranaghazzi.com\/?p=4116\" \/>\n<meta property=\"og:site_name\" content=\"Rana Nasri Ghazzi\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-01T17:49:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-04T12:27:24+00:00\" \/>\n<meta name=\"author\" content=\"Rana Ghazzi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rana Ghazzi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ranaghazzi.com\/?p=4116#article\",\"isPartOf\":{\"@id\":\"https:\/\/ranaghazzi.com\/?p=4116\"},\"author\":{\"name\":\"Rana Ghazzi\",\"@id\":\"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc\"},\"headline\":\"AirFlights Silver Layer\",\"datePublished\":\"2026-05-01T17:49:35+00:00\",\"dateModified\":\"2026-05-04T12:27:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ranaghazzi.com\/?p=4116\"},\"wordCount\":150,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ranaghazzi.com\/?p=4116#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ranaghazzi.com\/?p=4116\",\"url\":\"https:\/\/ranaghazzi.com\/?p=4116\",\"name\":\"AirFlights Silver Layer - Rana Nasri Ghazzi\",\"isPartOf\":{\"@id\":\"https:\/\/ranaghazzi.com\/#website\"},\"datePublished\":\"2026-05-01T17:49:35+00:00\",\"dateModified\":\"2026-05-04T12:27:24+00:00\",\"description\":\"Explore Rana Ghazzi's data analytics portfolio \u2014 dashboards, visualizations, and insights built with Tableau, Power BI & Python.\",\"breadcrumb\":{\"@id\":\"https:\/\/ranaghazzi.com\/?p=4116#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ranaghazzi.com\/?p=4116\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ranaghazzi.com\/?p=4116#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ranaghazzi.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AirFlights Silver Layer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ranaghazzi.com\/#website\",\"url\":\"https:\/\/ranaghazzi.com\/\",\"name\":\"Rana Nasri Ghazzi\",\"description\":\"Turning Data into Decisions\",\"publisher\":{\"@id\":\"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ranaghazzi.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc\",\"name\":\"Rana Ghazzi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png\",\"url\":\"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png\",\"contentUrl\":\"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png\",\"width\":1024,\"height\":1024,\"caption\":\"Rana Ghazzi\"},\"logo\":{\"@id\":\"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png\"},\"url\":\"https:\/\/ranaghazzi.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AirFlights Silver Layer - Rana Nasri Ghazzi","description":"Explore Rana Ghazzi's data analytics portfolio \u2014 dashboards, visualizations, and insights built with Tableau, Power BI & Python.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ranaghazzi.com\/?p=4116","og_locale":"en_US","og_type":"article","og_title":"AirFlights Silver Layer - Rana Nasri Ghazzi","og_description":"Explore Rana Ghazzi's data analytics portfolio \u2014 dashboards, visualizations, and insights built with Tableau, Power BI & Python.","og_url":"https:\/\/ranaghazzi.com\/?p=4116","og_site_name":"Rana Nasri Ghazzi","article_published_time":"2026-05-01T17:49:35+00:00","article_modified_time":"2026-05-04T12:27:24+00:00","author":"Rana Ghazzi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rana Ghazzi","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ranaghazzi.com\/?p=4116#article","isPartOf":{"@id":"https:\/\/ranaghazzi.com\/?p=4116"},"author":{"name":"Rana Ghazzi","@id":"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc"},"headline":"AirFlights Silver Layer","datePublished":"2026-05-01T17:49:35+00:00","dateModified":"2026-05-04T12:27:24+00:00","mainEntityOfPage":{"@id":"https:\/\/ranaghazzi.com\/?p=4116"},"wordCount":150,"commentCount":0,"publisher":{"@id":"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ranaghazzi.com\/?p=4116#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ranaghazzi.com\/?p=4116","url":"https:\/\/ranaghazzi.com\/?p=4116","name":"AirFlights Silver Layer - Rana Nasri Ghazzi","isPartOf":{"@id":"https:\/\/ranaghazzi.com\/#website"},"datePublished":"2026-05-01T17:49:35+00:00","dateModified":"2026-05-04T12:27:24+00:00","description":"Explore Rana Ghazzi's data analytics portfolio \u2014 dashboards, visualizations, and insights built with Tableau, Power BI & Python.","breadcrumb":{"@id":"https:\/\/ranaghazzi.com\/?p=4116#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ranaghazzi.com\/?p=4116"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ranaghazzi.com\/?p=4116#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ranaghazzi.com\/"},{"@type":"ListItem","position":2,"name":"AirFlights Silver Layer"}]},{"@type":"WebSite","@id":"https:\/\/ranaghazzi.com\/#website","url":"https:\/\/ranaghazzi.com\/","name":"Rana Nasri Ghazzi","description":"Turning Data into Decisions","publisher":{"@id":"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ranaghazzi.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/ranaghazzi.com\/#\/schema\/person\/d8ee34f53cb0df9faaf816fb5363a4cc","name":"Rana Ghazzi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png","url":"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png","contentUrl":"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png","width":1024,"height":1024,"caption":"Rana Ghazzi"},"logo":{"@id":"https:\/\/ranaghazzi.com\/wp-content\/uploads\/2025\/11\/logo.png"},"url":"https:\/\/ranaghazzi.com\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=\/wp\/v2\/posts\/4116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4116"}],"version-history":[{"count":30,"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=\/wp\/v2\/posts\/4116\/revisions"}],"predecessor-version":[{"id":4357,"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=\/wp\/v2\/posts\/4116\/revisions\/4357"}],"wp:attachment":[{"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ranaghazzi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}