Armazenamento de arquivos
Essa documentação foi descontinuada e pode não estar atualizada. O produto, serviço ou tecnologia mencionados neste conteúdo não são mais suportados.
O FileStore é uma pasta especial no DBFS em que o senhor pode salvar arquivos e deixá-los acessíveis no navegador da Web. Você pode usar o FileStore para:
- Salve arquivos, como imagens e bibliotecas, que podem ser acessados em HTML e JavaScript ao chama
displayHTML
. - Salve os arquivos de saída que deseja baixar em sua área de trabalho local.
- Carregue CSVs e outros arquivos de dados da sua área de trabalho local para processar no Databricks.
Quando você usa determinados recursos, o Databricks coloca arquivos nas seguintes pastas em FileStore:
/FileStore/jars
- contém upload de legado workspace biblioteca. Se o senhor excluir os arquivos dessa pasta, a biblioteca que faz referência a esses arquivos no site workspace poderá deixar de funcionar./FileStore/tables
- contém os arquivos que você importa usando a interface do usuário. Se você excluir arquivos nessa pasta, as tabelas que você criou a partir desses arquivos podem não estar mais acessíveis.
A biblioteca pode ser instalada a partir de DBFS ao usar Databricks Runtime 14.3 LTS e abaixo. No entanto, qualquer usuário do site workspace pode modificar os arquivos de biblioteca armazenados no site DBFS. Para aumentar a segurança da biblioteca em um Databricks workspace, o armazenamento de arquivos da biblioteca no DBFS root está obsoleto e desativado pelo default em Databricks Runtime 15.1 e acima. Consulte O armazenamento de biblioteca em DBFS root está obsoleto e desativado por default.
Em vez disso, o site Databricks recomenda o upload de todas as bibliotecas, incluindo Python biblioteca, JAR arquivos e Spark conectores, para workspace arquivos ou Unity Catalog volumes, ou usando repositórios de pacotes de biblioteca. Se sua carga de trabalho não for compatível com esses padrões, o senhor também poderá usar a biblioteca armazenada no armazenamento de objetos na nuvem.
Salvar um arquivo no FileStore
Você pode utilizar o dbutils.fs.put
para gravar arquivos de texto arbitrários no diretório /FileStore
no DBFS:
dbutils.fs.put("/FileStore/my-stuff/my-file.txt", "This is the actual text that will be saved to disk. Like a 'Hello world!' example")
A seguir, substitua <databricks-instance>
pelo URLworkspace de sua implantação Databricks.
Os arquivos armazenados em /FileStore
podem ser acessados em seu navegador da web em https://<databricks-instance>/files/
. Por exemplo, o arquivo armazenado em /FileStore/my-stuff/my-file.txt
pode ser acessado em https://<databricks-instance>/files/my-stuff/my-file.txt
.
No entanto, se houver ?o=
na URL de implementação, por exemplo, https://<databricks-instance>/?o=6280049833385130
, substitua https://<databricks-instance>/files/my-stuff/my-file.txt
por https://<databricks-instance>/files/my-stuff/my-file.txt?o=######
em que o número após o=
seja o mesmo da URL.
O senhor também pode usar as interfaces de upload de arquivos DBFS para colocar arquivos no diretório /FileStore
. Consulte Explorar e criar tabelas no DBFS.
Incorporar imagens estáticas no Notebook
Você pode usar o files/
local para incorporar imagens estáticas em seus notebooks:
displayHTML("<img src ='files/image.jpg'>")
ou sintaxe de importação de imagem Markdown:
%md

Exemplo usando Markdown
Por exemplo, suponha que você tenha o arquivo de imagem do logotipo Databricks no FileStore:
dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png
Quando você inclui o código a seguir em uma célula Markdown, a imagem é renderizada na célula:
Exemplo renderizado:
Exemplo usando a API do DBFS e solicitações da biblioteca HTTP do Python
O senhor pode fazer upload de imagens estáticas usando a API do DBFS e a biblioteca Python HTTP de solicitações. No exemplo a seguir:
- Substitua
<databricks-instance>
pelo URLworkspace de sua implantação Databricks. - Substitua
<token>
pelo valor de seus tokens de acesso pessoal. <image-dir>
Substitua pelo local emFileStore
que você deseja fazer o upload dos arquivos de imagem.
Como prática recomendada de segurança, ao se autenticar com ferramentas, sistemas, scripts e aplicativos automatizados, o Databricks recomenda que o senhor use o acesso pessoal tokens pertencente à entidade de serviço em vez dos usuários do workspace. Para criar tokens o site para uma entidade de serviço, consulte gerenciar tokens para uma entidade de serviço.
import requests
import json
import os
TOKEN = '<token>'
headers = {'Authorization': 'Bearer %s' % TOKEN}
url = "https://<databricks-instance>/api/2.0"
dbfs_dir = "dbfs:/FileStore/<image-dir>/"
def perform_query(path, headers, data={}):
session = requests.Session()
resp = session.request('POST', url + path, data=json.dumps(data), verify=True, headers=headers)
return resp.json()
def mkdirs(path, headers):
_data = {}
_data['path'] = path
return perform_query('/dbfs/mkdirs', headers=headers, data=_data)
def create(path, overwrite, headers):
_data = {}
_data['path'] = path
_data['overwrite'] = overwrite
return perform_query('/dbfs/create', headers=headers, data=_data)
def add_block(handle, data, headers):
_data = {}
_data['handle'] = handle
_data['data'] = data
return perform_query('/dbfs/add-block', headers=headers, data=_data)
def close(handle, headers):
_data = {}
_data['handle'] = handle
return perform_query('/dbfs/close', headers=headers, data=_data)
def put_file(src_path, dbfs_path, overwrite, headers):
handle = create(dbfs_path, overwrite, headers=headers)['handle']
print("Putting file: " + dbfs_path)
with open(src_path, 'rb') as local_file:
while True:
contents = local_file.read(2**20)
if len(contents) == 0:
break
add_block(handle, b64encode(contents).decode(), headers=headers)
close(handle, headers=headers)
mkdirs(path=dbfs_dir, headers=headers)
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
if ".png" in f:
target_path = dbfs_dir + f
resp = put_file(src_path=f, dbfs_path=target_path, overwrite=True, headers=headers)
if resp == None:
print("Success")
else:
print(resp)
escala de imagens estáticas
Para dimensionar o tamanho de uma imagem que você salvou no DBFS, /FileStore
copie a imagem e depois redimensione usando os parâmetros da imagem em: displayHTML
dbutils.fs.cp('dbfs:/user/experimental/MyImage-1.png','dbfs:/FileStore/images/')
displayHTML('''<img src="files/images/MyImage-1.png" style="width:600px;height:600px;">''')
Notebook Exemplo: Usar uma biblioteca JavaScript
Este notebook mostra como usar o FileStore para conter uma biblioteca JavaScript.