FileStore
FileStore是內部的一個特殊文件夾什麼是數據庫文件係統(DBFS)?在那裏你可以保存文件,並讓他們訪問您的網頁瀏覽器。你可以使用FileStore:
保存在調用時可以通過HTML和JavaScript訪問的文件,如圖像和庫
displayHTML
.保存要下載到本地桌麵的輸出文件。
從本地桌麵上傳csv和其他數據文件,以便在Databricks上處理。
當您使用某些特性時,Databricks將文件放在FileStore下的以下文件夾中:
/ FileStore /罐
-包含您上傳.如果刪除此文件夾中的文件,則在工作空間中引用這些文件的庫可能不再工作。/ FileStore /表
控件導入的文件用戶界麵.如果刪除此文件夾中的文件,則可能無法再訪問從這些文件創建的表。/ FileStore /塊
-包含你打電話時在筆記本上創建的圖像顯示()
在Python或R plot對象上,例如ggplot
或matplotlib
情節。如果您刪除了這個文件夾中的文件,您可能不得不在引用這些文件的筆記本中重新生成這些圖。看到Matplotlib而且ggplot2為更多的信息。/ FileStore import-stage
-包含導入時創建的臨時文件筆記本電腦或磚檔案文件。這些臨時文件在筆記本導入完成後消失。
將文件保存到FileStore
您可以使用dbutils.fs.put
將任意文本文件寫入/ FileStore
在DBFS目錄:
dbutils.fs.把(“/ FileStore /我的東西/ my-file.txt”,這是將保存到磁盤上的實際文本。就像“你好,世界!”“榜樣”)
在以下操作中,替換< databricks-instance >
與工作空間的URL您的Databricks部署。
文件存儲在/ FileStore
是否可在您的網頁瀏覽器訪問https:// < databricks-instance > /文件/
.例如,您存儲的文件/ FileStore /我的東西/ my-file.txt
可以在https:// < databricks-instance > /文件/我的東西/ my-file.txt
.
然而,如果有的話? o =
例如,在部署URL中https:// < databricks-instance > / ? o = 6280049833385130
、替換https:// < databricks-instance > /文件/我的東西/ my-file.txt
與https:// < databricks-instance > /文件/我的東西/ my-file.txt ? o = # # # # # #
後麵的數字o =
與你的URL中相同。
請注意
也可以使用DBFS文件上傳接口將文件放入/ FileStore
目錄中。看到使用Data選項卡瀏覽並創建表.
在筆記本中嵌入靜態圖像
您可以使用文件/
將靜態圖像嵌入筆記本的位置:
displayHTML(“< img src =“文件/ image.jpg”>“)
或Markdown圖像導入語法:
% md ! [my_test_image](文件/ image.jpg)
您可以使用DBFS上傳靜態圖像Databricks REST API參考和請求Python HTTP庫。以下示例:
取代
< databricks-instance >
與工作空間的URL您的Databricks部署。取代
<標記>
用你的價值個人訪問令牌.取代
< image-dir >
位置在FileStore
要上傳圖像文件的位置。
請注意
作為安全最佳實踐,在使用自動化工具、係統、腳本和應用程序進行身份驗證時,Databricks建議您使用屬於服務主體的訪問令牌,而不是工作區用戶。有關更多信息,請參見管理服務主體.
進口請求進口json進口操作係統令牌=' <標記> '頭={“授權”:不記名的% s'%令牌}url=“https:// < databricks-instance > / api / 2.0”dbfs_dir=“dbfs: / FileStore / < image-dir > /”defperform_query(路徑,頭,數據={}):會話=請求.會話()分別地=會話.請求(“職位”,url+路徑,數據=json.轉儲(數據),驗證=真正的,頭=頭)返回分別地.json()defmkdir(路徑,頭):_data={}_data[“路徑”]=路徑返回perform_query(“/ dbfs / mkdir”,頭=頭,數據=_data)def創建(路徑,覆蓋,頭):_data={}_data[“路徑”]=路徑_data[“覆蓋”]=覆蓋返回perform_query(“dbfs /創建”,頭=頭,數據=_data)defadd_block(處理,數據,頭):_data={}_data[“處理”]=處理_data[“數據”]=數據返回perform_query(“/ dbfs / addblock”,頭=頭,數據=_data)def關閉(處理,頭):_data={}_data[“處理”]=處理返回perform_query(“dbfs /關閉”,頭=頭,數據=_data)defput_file(src_path,dbfs_path,覆蓋,頭):處理=創建(dbfs_path,覆蓋,頭=頭)[“處理”]打印(“把文件:“+dbfs_path)與開放(src_path,rb的)作為local_file:而真正的:內容=local_file.讀(2**20.)如果len(內容)= =0:打破add_block(處理,b64encode(內容).解碼(),頭=頭)關閉(處理,頭=頭)mkdir(路徑=dbfs_dir,頭=頭)文件=[f為f在操作係統.listdir(“。”)如果操作係統.路徑.isfile(f)]為f在文件:如果“使用”在f:target_path=dbfs_dir+f分別地=put_file(src_path=f,dbfs_path=target_path,覆蓋=真正的,頭=頭)如果分別地= =沒有一個:打印(“成功”)其他的:打印(分別地)