大文件上传使用DBFSAPI2.0和Powershell

Powershell和DBFSAPI上传大文件到您的Databricks工作空间

写由ravirahul.padmanabhan

2022年9月27日

DatabricksRESTAPI程序化互动

API可用各种工具调用,包括Powershell文章中,我们将研究DBFS实例贴上命令使用cell并教你怎么使用Powershell执行相同命令

DBFSAPI2.0贴上命令AWS系统|休眠)限制数据量使用内容参数传递为1MB同一命令可传递2GB数据,如果数据以文件形式传递数据库主要用于流传上传,但也可用作方便单调数据上传

Curl实例

示例Curl发送简单多段寄出请求API上传文件达2GB尺寸

中所有值均用适当的环境值替换

删除

信息学

获取工作空间URL审查工作空间实例名、 URLs和IDs高山市AWS系统|休眠)

复习生成个人访问令牌高山市AWS系统|休眠文档细节说明如何创建个人访问令牌供RESTAPI使用

#参数数据bricks工作空间_url
          
           个人接入令
           
            本地_file_path=
            
             "              # ex: /Users/foo/Desktop/file_to_upload.png  dbfs_file_path="
             
              #前:/tmp/file_to_upload.png覆盖文件=
              
               Curl-place-request https://${databricks_url}/api/2.0/dbfs/put
              
             
            
           
          

Powershell实例

Powershell实例比curl实例长,但它向API发送相同的多段寄出请求

下脚本可用于环境Powershell支持.

运行Powershell脚本必须

  1. 替换所有值<>配有合适的环境值评析DBFSAPI2.0贴上文档获取更多信息
  2. 保存脚本为.ps1文件.举个例子,你可以调用它upload_large_file_to_dbfs.ps1.
  3. Powershell操作脚本./upload_large_file_to_dbfs.ps1时间提示
参数$DBX_HOST= "
          
           USDBX_TOKEN=
           
            $FILE_TO_UPOAD=
            
             #前:/Users/foo/Desktop/file_to_upload.png$DBFS_PATH=
             
              #前:/tmp/file_to_upload.png $OVERWITEFILE=
              
               "  ##################################################      # Configure authentication  $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"  $headers.Add("Authorization", "Bearer "  + $DBX_TOKEN)    $multipartContent = [System.Net.Http.MultipartFormDataContent]::new()    # Local file path  $FileStream = [System.IO.FileStream]::new($FILE_TO_UPLOAD, [System.IO.FileMode]::Open)  $fileHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new("form-data")  $fileHeader.Name = $(Split-Path $FILE_TO_UPLOAD -leaf)  $fileHeader.FileName = $(Split-Path $FILE_TO_UPLOAD -leaf)  $fileContent = [System.Net.Http.StreamContent]::new($FileStream)  $fileContent.Headers.ContentDisposition = $fileHeader  $fileContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::Parse("text/plain")  $multipartContent.Add($fileContent)      # DBFS path  $stringHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new("form-data")  $stringHeader.Name = "path"  $stringContent = [System.Net.Http.StringContent]::new($DBFS_PATH)  $stringContent.Headers.ContentDisposition = $stringHeader  $multipartContent.Add($stringContent)      # File overwrite config  $stringHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new("form-data")  $stringHeader.Name = "overwrite"  $stringContent = [System.Net.Http.StringContent]::new($OVERWRITE_FILE)  $stringContent.Headers.ContentDisposition = $stringHeader  $multipartContent.Add($stringContent)      # Call Databricks DBFS REST API  $body = $multipartContent  $uri = 'https://' + $DBX_HOST + '/api/2.0/dbfs/put'  $response = Invoke-RestMethod $uri -Method 'POST' -Headers $headers -Body $body  $response | ConvertTo-Json
              
             
            
           
          
删除

信息学

Powershell脚本Linux和OSX以及Windows使用命令运行Powershell脚本在这些环境略为不同bob体育客户端下载引用Powershell文档

文章有帮助吗