創建集群、筆記本和就業起程拓殖
本文將展示如何使用磚起程拓殖的提供者創建一個集群,一個筆記本和一個工作在現有的磚工作空間。
這篇文章是一個同伴磚開始的文章如下:
磚上運行你的第一個ETL工作負載使用一個通用的集群,Python的筆記本,筆記本運行工作。
與筆記本電腦教程:查詢數據,它使用一個通用的集群和一個SQL筆記本。
教程:運行一個端到端的lakehouse分析管道,它使用一個集群處理統一目錄,Python的筆記本,筆記本運行工作。
起程拓殖配置還可以適應在本文中創建自定義集群,筆記本電腦,和工作在你的工作區。
需求
一個磚的工作區。
本地開發機器上,您必須:
起程拓殖CLI。看到下載起程拓殖在起程拓殖網站上。
下列之一:
磚CLI版本0.200或更高版本,配置你的磚個人訪問令牌通過運行
磚配置——主機< workspace-url >——簡介< some-unique-profile-name >
。看到安裝CLI和磚個人訪問令牌認證。下麵的磚環境變量:
DATABRICKS_HOST
的值,設置為你的磚工作區實例URL例如,https://dbc - 1234567890123456. cloud.m.eheci.com
DATABRICKS_CLIENT_ID
將客戶機ID的值,也稱為應用程序ID,服務主體。看到使用OAuth身份驗證服務主體。DATABRICKS_CLIENT_SECRET
的值,設置為客戶端服務主體的秘密。看到使用OAuth身份驗證服務主體。
或者,您可以使用一個個人訪問令牌,而不是服務主體的客戶ID和客戶秘密:
設置這些環境變量,看你的操作係統的文檔。
步驟1:設置起程拓殖項目
在這個步驟中,您建立了一個起程拓殖起程拓殖驗證項目定義的設置與您的工作區。你也定義設置起程拓殖的資源部署到您的工作空間中。
創建一個空目錄,然後切換到它。這個目錄包含起程拓殖項目文件。(每個單獨的組起程拓殖項目文件必須在自己的父目錄)。要做到這一點,在你的終端或PowerShell,運行一個命令如下:
mkdir terraform_cluster_notebook_job& &cdterraform_cluster_notebook_job
在這個空目錄中,創建一個文件命名
auth.tf
,並將以下內容添加到該文件。這個配置初始化數據磚起程拓殖起程拓殖與提供者和驗證您的工作區。驗證數據磚CLI配置概要文件,添加以下內容:
變量“databricks_connection_profile”{描述=“磚連接配置文件的名稱使用。”類型=字符串}#初始化磚起程拓殖的提供者。起程拓殖{required_providers{磚={源=“磚/磚”}}}#使用磚CLI的身份驗證。提供者“磚”{配置文件=var。databricks_connection_profile}#獲取當前用戶的信息。數據“databricks_current_user”“我”{}
與環境變量進行身份驗證,而不是添加以下內容:
#初始化磚起程拓殖的提供者。起程拓殖{required_providers{磚={源=“磚/磚”}}}#使用環境變量進行身份驗證。提供者“磚”{}#獲取當前用戶的信息。數據“databricks_current_user”“我”{}
創建另一個文件命名
auth.auto.tfvars
,並將以下內容添加到該文件。這個文件包含變量的值驗證起程拓殖與你的工作區。占位符的值替換為你自己的價值觀。驗證數據磚CLI配置概要文件,添加以下內容:
databricks_connection_profile=“默認”
進行身份驗證和環境變量,你不需要一個
auth.auto.tfvars
文件。
運行
起程拓殖初始化
命令。這個命令初始化起程拓殖項目通過創建額外的輔助文件和下載必要的起程拓殖模塊。起程拓殖init
如果要創建一個集群,創建另一個文件命名
cluster.tf
,並將以下內容添加到該文件。這些內容創建一個集群資源允許的最小數量。這個集群使用最新的磚(LTS)長期運行時支持的版本。的集群使用統一目錄:
變量“cluster_name”{}變量“cluster_autotermination_minutes”{}變量“cluster_num_workers”{}變量“cluster_data_security_mode”{}#創建集群的“最小”#資源允許的。數據“databricks_node_type”“最小”{local_disk=真正的}#使用最新的磚運行時#長期支持(LTS)版本。數據“databricks_spark_version”“latest_lts”{long_term_support=真正的}資源“databricks_cluster”“這”{cluster_name=var。cluster_namenode_type_id=數據。databricks_node_type。最小的。idspark_version=數據。databricks_spark_version。latest_lts。idautotermination_minutes=var。cluster_autotermination_minutesnum_workers=var。cluster_num_workersdata_security_mode=var。cluster_data_security_mode}輸出“cluster_url”{價值=databricks_cluster。這。url}
一個通用的集群:
變量“cluster_name”{描述=“集群的名稱”。類型=字符串默認的=“我的集群”}變量“cluster_autotermination_minutes”{描述=“多少分鍾後自動終止由於不活動。”類型=數量默認的=60}變量“cluster_num_workers”{描述=“工人的數量。”類型=數量默認的=1}#創建集群的“最小”#資源允許的。數據“databricks_node_type”“最小”{local_disk=真正的}#使用最新的磚運行時#長期支持(LTS)版本。數據“databricks_spark_version”“latest_lts”{long_term_support=真正的}資源“databricks_cluster”“這”{cluster_name=var。cluster_namenode_type_id=數據。databricks_node_type。最小的。idspark_version=數據。databricks_spark_version。latest_lts。idautotermination_minutes=var。cluster_autotermination_minutesnum_workers=var。cluster_num_workers}輸出“cluster_url”{價值=databricks_cluster。這。url}
如果你正在創建集群,創建另一個文件命名
cluster.auto.tfvars
,並將以下內容添加到該文件。這個文件包含自定義的變量值集群。占位符的值替換為你自己的價值觀。的集群使用統一目錄:
cluster_name=“我的集群”cluster_autotermination_minutes=60cluster_num_workers=1cluster_data_security_mode=“SINGLE_USER”
一個通用的集群:
cluster_name=“我的集群”cluster_autotermination_minutes=60cluster_num_workers=1
如果要創建一個筆記本,創建另一個文件命名
notebook.tf
文件,並添加以下內容:變量“notebook_subdirectory”{描述=”子目錄的名稱存儲筆記本。”類型=字符串默認的=“起程拓殖”}變量“notebook_filename”{描述=筆記本的文件名。類型=字符串}變量“notebook_language”{描述=“筆記本的語言”。類型=字符串}資源“databricks_notebook”“這”{路徑=" ${data.databricks_current_user.me.home}美元/{var.notebook_subdirectory}美元/{var.notebook_filename}”語言=var。notebook_language源=”。/ ${var.notebook_filename}”}輸出“notebook_url”{價值=databricks_notebook。這。url}
將下麵的筆記本代碼保存到一個文件在同一個目錄中
notebook.tf
文件:Python的筆記本磚上運行你的第一個ETL工作負載,一個文件命名
notebook-getting-started-etl-quick-start.py
用下麵的內容:#磚筆記本的來源#導入功能從pyspark.sql.functions進口上校,current_timestamp#定義變量中使用下麵的代碼file_path=“/ databricks-datasets / structured-streaming /事件”用戶名=火花。sql(的“選擇regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”)。第一個()(0]table_name=f”{用戶名}_etl_quickstart”checkpoint_path=f“/ tmp /{用戶名}/ _checkpoint / etl_quickstart”#從以前的演示執行清除數據火花。sql(f如果存在“刪除表{table_name}”)dbutils。fs。rm(checkpoint_path,真正的)#配置自動加載程序向三角洲攝取JSON數據表(火花。readStream。格式(“cloudFiles”)。選項(“cloudFiles.format”,“json”)。選項(“cloudFiles.schemaLocation”,checkpoint_path)。負載(file_path)。選擇(“*”,上校(“_metadata.file_path”)。別名(“source_file”),current_timestamp()。別名(“processing_time”))。writeStream。選項(“checkpointLocation”,checkpoint_path)。觸發(availableNow=真正的)。toTable(table_name))- - - - - - - - - - - #命令df=火花。讀。表(table_name)- - - - - - - - - - - #命令顯示(df)
SQL的筆記本與筆記本電腦教程:查詢數據,一個文件命名
notebook-getting-started-quick-start.sql
用下麵的內容:- - -磚筆記本源- - -魔法%python- - -魔法鑽石=(火花。讀- - -魔法。格式(“csv”)- - -魔法。選項(“頭”,“真正的”)- - -魔法。選項(“inferSchema”,“真正的”)- - -魔法。負載(“/ databricks-datasets / Rdatasets /數據- 001 / csv / ggplot2 / diamonds.csv”)- - -魔法)- - -魔法- - -魔法鑽石。寫。格式(“δ”)。保存(“/ mnt /δ/鑽石”)- - -命令- - - - - - - - - - -下降表如果存在鑽石;創建表鑽石使用δ位置“/ mnt /δ/鑽石”- - -命令- - - - - - - - - - -選擇顏色,avg(價格)作為價格從鑽石集團通過顏色訂單通過顏色
Python的筆記本教程:運行一個端到端的lakehouse分析管道,一個文件命名
notebook-getting-started-lakehouse-e2e.py
用下麵的內容:#磚筆記本的來源external_location=“< your_external_location >”目錄=“< your_catalog >”dbutils。fs。把(f”{external_location}/ foobar.txt”,“Hello world !”,真正的)顯示(dbutils。fs。頭(f”{external_location}/ foobar.txt”))dbutils。fs。rm(f”{external_location}/ foobar.txt”)顯示(火花。sql(f“顯示模式{目錄}”))- - - - - - - - - - - #命令從pyspark.sql.functions進口上校#設置參數隔離在工作區和重置演示用戶名=火花。sql(的“選擇regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”)。第一個()(0]數據庫=f”{目錄}.e2e_lakehouse_{用戶名}_db”源=f”{external_location}/ e2e-lakehouse-source”表=f”{數據庫}.target_table”checkpoint_path=f”{external_location}/ _checkpoint / e2e-lakehouse-demo”火花。sql(f“c.username = '{用戶名}’”)火花。sql(f“設置c.database ={數據庫}”)火花。sql(f“c.source = '{源}’”)火花。sql(“數據庫,如果存在美元下降{c.database}級聯”)火花。sql(“創建數據庫{c.database}”)火花。sql(“使用美元{c.database}”)#從以前的演示執行清除數據dbutils。fs。rm(源,真正的)dbutils。fs。rm(checkpoint_path,真正的)#定義一個類加載批次的數據來源類LoadData:def__init__(自我,源):自我。源=源defget_date(自我):試一試:df=火花。讀。格式(“json”)。負載(源)除了:返回“2016-01-01”batch_date=df。selectExpr(“馬克斯(不同(日期(tpep_pickup_datetime))) + 1日”)。第一個()(0]如果batch_date。月= =3:提高異常(“源數據了”)返回batch_datedefget_batch(自我,batch_date):返回(火花。表(“samples.nyctaxi.trips”)。過濾器(上校(“tpep_pickup_datetime”)。投(“日期”)= =batch_date))defwrite_batch(自我,批處理):批處理。寫。格式(“json”)。模式(“添加”)。保存(自我。源)defland_batch(自我):batch_date=自我。get_date()批處理=自我。get_batch(batch_date)自我。write_batch(批處理)RawData=LoadData(源)- - - - - - - - - - - #命令RawData。land_batch()- - - - - - - - - - - #命令#導入功能從pyspark.sql.functions進口上校,current_timestamp#配置自動加載程序向三角洲攝取JSON數據表(火花。readStream。格式(“cloudFiles”)。選項(“cloudFiles.format”,“json”)。選項(“cloudFiles.schemaLocation”,checkpoint_path)。負載(file_path)。選擇(“*”,上校(“_metadata.file_path”)。別名(“source_file”),current_timestamp()。別名(“processing_time”))。writeStream。選項(“checkpointLocation”,checkpoint_path)。觸發(availableNow=真正的)。選項(“mergeSchema”,“真正的”)。toTable(表))- - - - - - - - - - - #命令df=火花。讀。表(table_name)- - - - - - - - - - - #命令顯示(df)
如果你創建的筆記本,創建另一個文件命名
notebook.auto.tfvars
,並將以下內容添加到該文件。這個文件包含定製筆記本配置的變量值。Python的筆記本磚上運行你的第一個ETL工作負載:
notebook_subdirectory=“起程拓殖”notebook_filename=“notebook-getting-started-etl-quick-start.py”notebook_language=“巨蟒”
SQL的筆記本與筆記本電腦教程:查詢數據:
notebook_subdirectory=“起程拓殖”notebook_filename=“notebook-getting-started-quickstart.sql”notebook_language=“SQL”
Python的筆記本教程:運行一個端到端的lakehouse分析管道:
notebook_subdirectory=“起程拓殖”notebook_filename=“notebook-getting-started-lakehouse-e2e.py”notebook_language=“巨蟒”
如果你正在創建一個筆記本,磚工作區,一定要設置任何需求筆記本運行成功,通過引用以下說明:
Python的筆記本磚上運行你的第一個ETL工作負載
SQL的筆記本與筆記本電腦教程:查詢數據
Python的筆記本教程:運行一個端到端的lakehouse分析管道
如果你正在創建一個工作,創建另一個文件命名
job.tf
,並將以下內容添加到該文件。這些內容創建一個工作運行的筆記本。變量“job_name”{描述=“名字。”類型=字符串默認的=“我的工作”}資源“databricks_job”“這”{的名字=var。job_nameexisting_cluster_id=databricks_cluster。這。cluster_idnotebook_task{notebook_path=databricks_notebook。這。路徑}email_notifications{on_success=(數據。databricks_current_user。我。user_name]on_failure=(數據。databricks_current_user。我。user_name]}}輸出“job_url”{價值=databricks_job。這。url}
如果你創建工作,創建另一個文件命名
job.auto.tfvars
,並將以下內容添加到該文件。這個文件包含一個變量值配置定製工作。job_name=“我的工作”
步驟2:運行配置
在這個步驟中,您運行起程拓殖配置部署集群,筆記本,工作到磚工作區中。
檢查是否你起程拓殖配置是有效運行
起程拓殖驗證
命令。如果報告任何錯誤,修複它們,並再次運行該命令。起程拓殖驗證
查看起程拓殖將做什麼在你的工作區,起程拓殖實際上它之前,通過運行
起程拓殖計劃
命令。起程拓殖計劃
集群部署,筆記本,工作到您的工作空間中運行
起程拓殖應用
命令。當提示部署類型是的
並按輸入。起程拓殖應用
起程拓殖部署在您的項目中指定的資源。部署這些資源(特別是集群)可能要占用幾分鍾的時間。
步驟3:探索結果
如果你創建了一個集群,在輸出的
起程拓殖應用
命令,複製鏈接旁邊cluster_url
,並粘貼到您的web瀏覽器的地址欄。如果你創建了一個筆記本,在輸出的
起程拓殖應用
命令,複製鏈接旁邊notebook_url
,並粘貼到您的web瀏覽器的地址欄。請注意
在使用筆記本之前,你可能需要定製它的內容。參見相關文檔如何定製筆記本。
如果您創建了一個工作,在的輸出
起程拓殖應用
命令,複製鏈接旁邊job_url
,並粘貼到您的web瀏覽器的地址欄。請注意
在運行筆記本之前,你可能需要定製它的內容。看到這篇文章的鏈接開始相關文檔如何定製筆記本。
如果您創建了一個工作,運行作業如下:
點擊現在運行在工作中頁麵。
工作完成後運行,查看工作運行的結果,完成運行60天(過去)工作列表頁麵,點擊最近時間條目開始時間列。的輸出窗格中顯示了筆記本的代碼運行的結果。