連接到Azure Blob存儲與WASB(遺留)
微軟已經棄用Windows Azure存儲Blob司機(WASB)Azure Blob存儲讚成Azure Blob文件係統驅動程序(沛富);看到連接到數據存儲Gen2湖和Blob存儲Azure。沛富對WASB有很多好處;看到Azure文檔沛富。
本文提供了維護代碼,文檔使用WASB司機。磚建議使用沛富Azure Blob存儲的所有連接。
配置在磚WASB憑證
WASB驅動程序允許您使用一個存儲帳戶訪問鍵或者一個共享訪問簽名(SAS)。(如果你是讀取數據從公共存儲賬戶,您不需要配置憑證)。
磚推薦使用秘密當你需要通過憑證在磚。秘密可以包含所有用戶訪問秘密的範圍。
你可以通過憑證:
作用域的火花的集群配置
作用域的筆記本
附加到一個安裝目錄
磚建議升級您的所有連接使用沛富訪問Azure Blob存儲WASB提供類似的訪問模式。使用沛富交互時最好的安全性和性能Azure的Blob存儲。
配置集群憑證,集火花配置當您創建集群屬性。憑證集中在集群級別可用於所有用戶訪問集群。
配置notebook-scoped憑證,使用spark.conf.set ()
。憑證在筆記本級別可以通過筆記本的所有用戶訪問。
設置Azure Blob存儲憑證訪問密鑰存儲賬戶
存儲帳戶訪問鍵授予完全訪問所有容器內存儲賬戶。雖然這種模式是有用的為原型,避免在生產中使用它來減少風險與允許不受限製地訪問相關生產數據。
火花。相依。集(“fs.azure.account.key < storage-account-name > .blob.core.windows.net”。,“< storage-account-access-key >”)
你可以升級帳戶關鍵uri使用沛富。有關更多信息,請參見連接到數據存儲Gen2湖和Blob存儲Azure。
Azure Blob存儲使用DataFrame API訪問
Apache火花DataFrame API可以使用憑證配置在筆記本或集群級別。所有WASB司機uri指定容器和存儲帳戶名稱。目錄名稱是可選的,可以指定多個嵌套目錄相對於容器。
wasbs:/ / <容器- - - - - -的名字> @ <存儲- - - - - -賬戶- - - - - -的名字>。團。核心。窗戶。淨/ <目錄- - - - - -的名字>
以下代碼示例展示了如何使用DataFrames API磚公用事業一個容器內與一個指定的目錄。
df=火花。讀。格式(“鋪”)。負載(“wasbs: / / <容器名稱> @ < storage-account-name >.blob.core.windows.net/ <目錄名稱>”)dbutils。fs。ls(“wasbs: / / <容器名稱> @ < storage-account-name >.blob.core.windows.net/ <目錄名稱>”)
更新沛富而不是WASB,更新您的uri。有關更多信息,請參見訪問Azure存儲
與SQL Azure Blob存儲的訪問
憑證集中在筆記本的會話配置不訪問筆記本運行引發的SQL。
後一個帳戶訪問密鑰或SAS是建立在集群配置中,您可以使用標準的SQL查詢Azure的火花Blob存儲:
——SQL創建數據庫<db- - - - - -的名字>位置“wasbs: / / <容器名稱> @ < storage-account-name >.blob.core.windows.net/”;
沛富而不是WASB更新,更新您的uri;看到訪問Azure存儲
山Azure DBFS Blob存儲容器
你可以掛載一個Azure Blob存儲容器DBFS容器內的一個或一個文件夾。磚的建議,請參閱安裝雲對象存儲在磚上。
重要的
Azure Blob存儲支持三種blob類型:塊、附加和頁麵。你隻能掛載塊DBFS blob。
所有的用戶都擁有讀和寫訪問的對象DBFS Blob存儲容器安裝。
通過集群創建掛載點之後,用戶的集群可以立即訪問掛載點。在另一個運行集群使用掛載點,您必須運行
dbutils.fs.refreshMounts ()
集群上運行,使新創建掛載點。
DBFS用您提供的憑據,當您創建掛載點訪問安裝Blob存儲容器。如果一個Blob存儲容器安裝使用存儲帳戶訪問鍵,DBFS使用臨時SAS令牌來自存儲賬戶關鍵時候訪問這個掛載點。
掛載一個Azure Blob存儲容器
磚代替WASB推薦使用沛富。安裝與沛富的更多信息,請參閱:沛富山ADLS Gen2或Blob存儲。
掛載一個Blob存儲容器容器內的一個或一個文件夾,使用以下命令:
dbutils。fs。山(源=“wasbs: / / <容器名稱> @ < storage-account-name > .blob.core.windows.net”,mount_point=“/ mnt / < mount-name >”,extra_configs={“< conf-key >”:dbutils。秘密。得到(範圍=“< scope-name >”,關鍵=“<鍵名>”)})
dbutils。fs。山(源=“wasbs: / / <容器名稱> @ < storage-account-name >.blob.core.windows.net/ <目錄名稱>”,掛載點=“/ mnt / < mount-name >”,extraConfigs=地圖(“< conf-key >”- >dbutils。秘密。得到(範圍=“< scope-name >”,關鍵=“<鍵名>”)))
在哪裏
< storage-account-name >
是你的名字Azure Blob存儲賬戶。<容器名稱>
是一個容器的名字在Azure Blob存儲賬戶。< mount-name >
是DBFS路徑代表Blob存儲容器或容器內一個文件夾(指定在嗎源
)將安裝在DBFS。< conf-key >
可以是fs.azure.account.key。< storage-account-name > .blob.core.windows.net
或fs.azure.sas。<容器名稱>。< storage-account-name > .blob.core.windows.net
dbutils.secrets.get(範圍=“< scope-name >”,關鍵=“<鍵名>”)
得到關鍵被存儲為一個秘密在一個秘密的範圍。
訪問文件在你的容器就像本地文件,例如:
# pythondf=火花。讀。格式(“文本”)。負載(“/ mnt / < mount-name > /……”)df=火花。讀。格式(“文本”)。負載(“dbfs: / < mount-name > /……”)
/ / scala瓦爾df=火花。讀。格式(“文本”)。負載(“/ mnt / < mount-name > /……”)瓦爾df=火花。讀。格式(“文本”)。負載(“dbfs: / < mount-name > /……”)
——SQL創建數據庫<db- - - - - -的名字>位置“/ mnt / < mount-name >”