{"id":3454,"date":"2025-09-09T18:08:14","date_gmt":"2025-09-09T23:08:14","guid":{"rendered":"https:\/\/datacracy.co\/?p=3454"},"modified":"2026-05-27T11:58:00","modified_gmt":"2026-05-27T16:58:00","slug":"integrating-airflow-with-databricks","status":"publish","type":"post","link":"https:\/\/www.datacracy.co\/es\/integrating-airflow-with-databricks\/","title":{"rendered":"Integrating Airflow with Databricks"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3454\" class=\"elementor elementor-3454\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37c54ae9 e-con-full e-flex e-con e-parent\" data-id=\"37c54ae9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16198967 elementor-widget elementor-widget-spacer\" data-id=\"16198967\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69952c6e elementor-widget elementor-widget-image\" data-id=\"69952c6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"168\" src=\"https:\/\/www.datacracy.co\/wp-content\/uploads\/2024\/11\/DATACRACY-LOGO-BN-e1732283126752-300x168.png\" class=\"attachment-medium size-medium wp-image-148\" alt=\"\" srcset=\"https:\/\/www.datacracy.co\/wp-content\/uploads\/2024\/11\/DATACRACY-LOGO-BN-e1732283126752-300x168.png 300w, https:\/\/www.datacracy.co\/wp-content\/uploads\/2024\/11\/DATACRACY-LOGO-BN-e1732283126752.png 693w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4d516ba elementor-widget elementor-widget-heading\" data-id=\"4d516ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">BLOG<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19e73c92 elementor-widget elementor-widget-spacer\" data-id=\"19e73c92\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d7cbee9 e-flex e-con-boxed e-con e-parent\" data-id=\"d7cbee9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c7c3592 elementor-widget elementor-widget-spacer\" data-id=\"c7c3592\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d90287b e-con-full e-flex e-con e-parent\" data-id=\"d90287b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c1ee72 elementor-widget elementor-widget-page-title\" data-id=\"5c1ee72\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;align&quot;:&quot;center&quot;}\" data-widget_type=\"page-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<div class=\"hfe-page-title hfe-page-title-wrapper elementor-widget-heading\">\n\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.datacracy.co\/es\/\">\n\t\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\n\t\t\t\t\t\t\t\t\n\t\t\t\tIntegrating Airflow with Databricks\t\t\t\t\t- Overview of Airflow, Databricks, and dbt\t\t\t\t  \n\t\t\t<\/h2 > \n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dfb7f24 e-con-full e-flex e-con e-parent\" data-id=\"dfb7f24\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e90e7ec elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e90e7ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f6f3f09 e-flex e-con-boxed e-con e-parent\" data-id=\"f6f3f09\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4419c30 elementor-widget elementor-widget-spacer\" data-id=\"4419c30\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e12f192 e-con-full e-flex e-con e-parent\" data-id=\"e12f192\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dfb8856 elementor-widget elementor-widget-text-editor\" data-id=\"dfb8856\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Before diving into the integration steps, let\u2019s quickly overview the technologies we\u2019ll be using.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-61e9633 e-con-full e-flex e-con e-parent\" data-id=\"61e9633\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5bf08f1 e-con-full e-flex e-con e-child\" data-id=\"5bf08f1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff2efa1 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"ff2efa1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-star\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t\u00a0**Apache Airflow**\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tAn open-source platform used to programmatically author, schedule, and monitor workflows.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ece0c21 e-con-full e-flex e-con e-child\" data-id=\"ece0c21\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec3b4b9 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"ec3b4b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-star\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t**Databricks**\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tA unified data analytics platform that provides a Spark-based processing engine, allowing you to build scalable data pipelines.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9132aff e-con-full e-flex e-con e-child\" data-id=\"9132aff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a2eba84 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"a2eba84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-star\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\t**DBT (data build tool)**\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tA tool that enables data analysts and engineers to transform data in a warehouse via SQL, with the added benefit of validating the data quality through testing and documentation.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-28e9912 e-flex e-con-boxed e-con e-parent\" data-id=\"28e9912\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-39f50c1 elementor-widget elementor-widget-spacer\" data-id=\"39f50c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-247a193 e-con-full e-flex e-con e-parent\" data-id=\"247a193\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d135ae elementor-widget elementor-widget-text-editor\" data-id=\"1d135ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>By combining these tools, you can orchestrate a full end-to-end data pipeline in which data is processed in Databricks, and dbt is used to validate the quality of that data.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b8e7b33 e-con-full e-flex e-con e-parent\" data-id=\"b8e7b33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c66e7cd elementor-widget elementor-widget-heading\" data-id=\"c66e7cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Setting Up Airflow<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-89a762f e-grid e-con-full e-con e-child\" data-id=\"89a762f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6082371 elementor-widget elementor-widget-text-editor\" data-id=\"6082371\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Start by installing and setting up Apache Airflow. If you already have it running, you can skip this section.<\/p><ul><li><strong>Install Airflow via pip<\/strong>: pip install apache-airflow.<\/li><li><strong>Initialize the database and start the webserver<\/strong>:<br \/>airflow db init<br \/>airflow webserver<br \/>airflow scheduler<br \/>Next, configure Airflow to work with Databricks.<\/li><li><strong>Airflow Configuration for Databricks<\/strong>:<ul><li>Install the Databricks integration package: pip install apache-airflow-providers-databricks.<\/li><li>Configure the Databricks connection in Airflow\u2019s UI:<\/li><li>Go to the Airflow Admin tab \u2192 Connections \u2192 Add a new connection.<\/li><li>Set **Conn Type** to Databricks.<\/li><li>Add your **Databricks host URL** and **token**.<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9bfe234 elementor-widget elementor-widget-image\" data-id=\"9bfe234\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.datacracy.co\/wp-content\/uploads\/elementor\/thumbs\/channels4_profile-rbjygtg9t54z8zsec4ryejg1k6hwhompfa6akwy4xc.jpg\" title=\"channels4_profile\" alt=\"channels4_profile\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06b1a60 elementor-widget elementor-widget-spacer\" data-id=\"06b1a60\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fe031d6 e-con-full e-flex e-con e-parent\" data-id=\"fe031d6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e38a8a elementor-widget elementor-widget-heading\" data-id=\"1e38a8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Running a Databricks Job from Airflow<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22e50ba elementor-widget elementor-widget-text-editor\" data-id=\"22e50ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>To orchestrate a Databricks job in Airflow, you can use the DatabricksSubmitRunOperator. Here\u2019s a simple example of a<br \/>DAG that triggers a Databricks job.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d19bfe7 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"d19bfe7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-light view-mode-default\" data-language=\"py\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-d19bfe7\" id=\"eael-code-snippet-d19bfe7\" >\n               <div class=\"eael-code-snippet-header eael-file-preview-header\">\n            <div class=\"eael-file-preview-left\">\n                           <div class=\"eael-file-info\">\n                                    <div class=\"eael-file-icon\">\n                                             <span class=\"eael-file-icon-emoji\">\ud83d\udc0d<\/span>\n                                          <\/div>\n                                    <div class=\"eael-file-name\">\n                     <span class=\"file-name-text\">\n                        DatabricksJob.py                     <\/span>\n                  <\/div>\n                                 <\/div>\n            <\/div>\n\n                        <div class=\"eael-file-preview-right\">\n               <div class=\"eael-code-snippet-copy-container\">\n                  <button data-clipboard-target=\"#eael-code-snippet-d19bfe7 .eael-code-snippet-code code\" class=\"eael-code-snippet-copy-button\" type=\"button\" aria-label=\"Copiar c\u00f3digo al portapapeles Copiar c\u00f3digo al portapapeles\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                           <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                  <\/button>\n                                 <\/div>\n            <\/div>\n                     <\/div>\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-py\"><code>from airflow import DAG\nfrom airflow.providers.databricks.operators.databricks import DatabricksSubmitRunOperator\nfrom airflow.utils.dates import days_ago\n\n# Definir par\u00e1metros del trabajo en Databricks\n\nDATABRICKS_TASK = {\n\u00a0\u00a0\u00a0 &#039;new_cluster&#039;: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#039;spark_version&#039;: &#039;7.3.x-scala2.12&#039;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#039;node_type_id&#039;: &#039;i3.xlarge&#039;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#039;num_workers&#039;: 2,\n\u00a0\u00a0\u00a0 },\n\u00a0\u00a0\u00a0 &#039;notebook_task&#039;: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#039;notebook_path&#039;: &#039;\/Shared\/your_notebook_path&#039;,\n\u00a0\u00a0\u00a0 },\n}\ndefault_args = {\n\u00a0\u00a0\u00a0 &#039;owner&#039;: &#039;airflow&#039;,\n\u00a0\u00a0\u00a0 &#039;start_date&#039;: days_ago(1),\n}\n\n# Definici\u00f3n del DAG\n\nwith DAG(&#039;databricks_job&#039;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 schedule_interval=&#039;@daily&#039;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 default_args=default_args,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 catchup=False) as dag:\n\u00a0\u00a0\u00a0 # Submit Databricks job\n\u00a0\u00a0\u00a0 run_databricks_job = DatabricksSubmitRunOperator(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 task_id=&#039;run_databricks_job&#039;,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 json=DATABRICKS_TASK,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 databricks_conn_id=&#039;databricks_default&#039;\n\u00a0\u00a0\u00a0 }\n\n\u00a0\u00a0\u00a0 run_databricks_job<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-acab008 e-flex e-con-boxed e-con e-parent\" data-id=\"acab008\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a013d4b elementor-widget elementor-widget-spacer\" data-id=\"a013d4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Integrating Airflow with Databricks: Adding Data Quality with dbt<\/p>\n","protected":false},"author":1,"featured_media":1816,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_canvas","format":"standard","meta":{"_eb_attr":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[32],"tags":[],"class_list":["post-3454","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dato"],"_links":{"self":[{"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/posts\/3454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/comments?post=3454"}],"version-history":[{"count":34,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/posts\/3454\/revisions"}],"predecessor-version":[{"id":4244,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/posts\/3454\/revisions\/4244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/media\/1816"}],"wp:attachment":[{"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/media?parent=3454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/categories?post=3454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.datacracy.co\/es\/wp-json\/wp\/v2\/tags?post=3454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}