DatabricksRESTAPI程序化互动
API可用各种工具调用,包括Powershell文章中,我们将研究DBFS实例贴上命令使用cell并教你怎么使用Powershell执行相同命令
DBFSAPI2.0贴上命令AWS系统|休眠)限制数据量使用内容参数传递为1MB同一命令可传递2GB数据,如果数据以文件形式传递数据库主要用于流传上传,但也可用作方便单调数据上传
Curl实例
示例Curl发送简单多段寄出请求API上传文件达2GB尺寸
中所有值均用适当的环境值替换
#参数数据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脚本必须
- 替换所有值<>配有合适的环境值评析DBFSAPI2.0贴上文档获取更多信息
- 保存脚本为.ps1文件.举个例子,你可以调用它upload_large_file_to_dbfs.ps1.
- 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