连接到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 >”