上傳大文件使用DBFS API 2.0和PowerShell

PowerShell和DBFS API使用大文件上傳你的磚工作區。

寫的ravirahul.padmanabhan

去年發表在:2022年9月27日

使用磚REST API以編程方式與集群交互可以是一個偉大的方式來簡化工作流程和腳本。

API可以調用各種工具,包括PowerShell。在本文中,我們將看看DBFS一個例子使用curl命令,然後向您展示如何使用PowerShell執行相同的命令。

DBFS API 2.0命令(AWS|Azure)限製的數據量可以使用內容參數傳遞給1 MB如果數據作為字符串傳遞。相同的命令可以通過2 GB的數據作為一個文件傳遞。它主要用於流媒體上傳,但是也可以使用作為一個方便的單一數據上傳。

旋度的例子

這個示例使用curl將一個簡單的多部分表單post請求發送到API來上傳文件到2 GB大小的。

< >中所有的值替換為適當的值對於您的環境。

刪除

信息

得到您的工作區URL,審查工作區實例名、url和id(AWS|Azure)。

檢查生成一個個人訪問令牌(AWS|Azure)如何創建一個文檔細節的個人使用REST api訪問令牌。

#參數databricks_workspace_url = " < databricks-workspace-url > " personal_access_token = < personal-access-token >“local_file_path = " < local_file_path > #交貨:/用戶/ foo /桌麵/ file_to_upload。png dbfs_file_path = " < dbfs_file_path > " #交貨:/ tmp / file_to_upload。png overwrite_file = " <真|假> " curl——位置請求發布https:// $ {databricks_workspace_url} / api / 2.0 / dbfs /把\——頭”授權:無記名$ {personal_access_token} " \,形式內容= @ $ {local_file_path} \——形成路徑= $ {dbfs_file_path} \形式覆蓋= $ {overwrite_file}

PowerShell的例子

這個PowerShell的例子是比旋度的例子,但它發送相同的多部分表單post請求API。

下麵的腳本可以用在任何環境中PowerShell是支持

你必須運行PowerShell腳本:

  1. 替換所有的值< >用適當的值是否適合您的環境。2.0審查DBFS API文檔的更多信息。
  2. 將腳本保存為一個.ps1文件。例如,您可以調用它upload_large_file_to_dbfs.ps1
  3. 執行在PowerShell腳本運行。/ upload_large_file_to_dbfs.ps1在提示符中。
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #參數$ DBX_HOST = < databricks-workspace-url >“DBX_TOKEN = < personal-access-token >“FILE_TO_UPLOAD美元= < local_file_path >“#交貨:/用戶/ foo /桌麵/ FILE_TO_UPLOAD。png DBFS_PATH美元= " < dbfs_file_path > " #交貨:/ tmp / file_to_upload。png OVERWRITE_FILE美元= " <真|假>“# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # header =新對象”System.Collections.Generic美元配置身份驗證。詞典[[String], [String]]”美元的頭。添加(“授權”,“持票人”+ DBX_TOKEN美元)$ multipartContent = [System.Net.Http.MultipartFormDataContent]::新()# $ = FileStream[先本地文件路徑。文件流)::新(FILE_TO_UPLOAD美元[System.IO.FileMode]::打開)$ fileHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::新(“格式”)fileHeader美元。Name = $(美元Split-Path FILE_TO_UPLOAD葉)fileHeader美元。文件名= $(美元Split-Path FILE_TO_UPLOAD葉)$ fileContent = [System.Net.Http.StreamContent]::新()FileStream fileContent.Headers美元。ContentDisposition = fileHeader fileContent.Headers美元。ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::解析(" text / plain”) multipartContent.Add美元($ fileContent) # $ stringHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]: DBFS路徑:新(“格式”)stringHeader美元。Name = "路徑" $ stringContent = [System.Net.Http.StringContent]::新(DBFS_PATH美元)stringContent.Headers美元。ContentDisposition = stringHeader multipartContent.Add美元($ stringContent) #文件覆蓋配置$ stringHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::新(“格式”)stringHeader美元。Name = "改寫" $ stringContent = [System.Net.Http.StringContent]::新(OVERWRITE_FILE美元)stringContent.Headers美元。ContentDisposition = stringHeader multipartContent.Add美元($ stringContent) #叫磚DBFS REST API的身體=美元multipartContent uri = " https:// " + DBX_HOST美元+ / API / 2.0 / DBFS /把的響應= Invoke-RestMethod uri美元方法“POST”標題頭身體身體反應美元美元| ConvertTo-Json
刪除

信息

您可以使用PowerShell腳本在Linux和OS X Windows。命令PowerShell腳本運行在這些環境中略有不同。請參閱PowerShell文檔如果你正試圖運行腳本窗口以外的一個平台。Beplay体育安卓版本

這篇文章有用嗎?