Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta documentación se ha retirado y es posible que no se actualice. Los productos, servicios o tecnologías mencionados en este contenido ya no se admiten.
FileStore es una carpeta especial dentro de DBFS donde puede guardar archivos y hacer que sean accesibles para el explorador web. Puede usar FileStore para:
- Guardar archivos, como imágenes y bibliotecas, a los que se puede acceder en HTML y JavaScript al llamar a
displayHTML. - Guardar en el dispositivo de escritorio local los archivos de salida que desea descargar.
- Cargar archivos CSV y otros archivos de datos desde el dispositivo de escritorio local para procesarlos en Databricks.
Cuando se usan determinadas características, Azure Databricks coloca los archivos en las carpetas siguientes en FileStore:
-
/FileStore/jars: contiene bibliotecas de áreas de trabajo heredadas cargadas. Si elimina archivos de esta carpeta, es posible que las bibliotecas que hacen referencia a estos archivos en el área de trabajo dejen de funcionar. -
/FileStore/tables: contiene los archivos que se importan mediante la interfaz de usuario. Si elimina archivos de esta carpeta, es posible que ya no se pueda acceder a las tablas que se crearon a partir de estos archivos.
Importante
Las bibliotecas se pueden instalar desde DBFS cuando se usa Databricks Runtime 14.3 LTS y versiones anteriores. Sin embargo, cualquier usuario del área de trabajo puede modificar los archivos de biblioteca almacenados en DBFS. Para mejorar la seguridad de las bibliotecas en un área de trabajo de Azure Databricks, el almacenamiento de archivos de biblioteca en la raíz de DBFS está en desuso y deshabilitado de forma predeterminada en Databricks Runtime 15.1 y versiones posteriores. Consulte El almacenamiento de bibliotecas en la raíz de DBFS está en desuso y deshabilitado de forma predeterminada.
En su lugar, Databricks recomienda cargar todas las bibliotecas, incluidas las bibliotecas de Python, los archivos JAR y los conectores de Spark, en archivos de área de trabajo o volúmenes de Catálogo de Unity, o mediante repositorios de paquetes de biblioteca. Si la carga de trabajo no admite estos patrones, también puede usar bibliotecas almacenadas en el almacenamiento de objetos en la nube.
Almacenamiento de un archivo en FileStore
Puede usar dbutils.fs.put para escribir archivos de texto arbitrarios en el directorio /FileStore de 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")
En lo siguiente, reemplace <databricks-instance> con la URL del área de trabajo de su implementación de Azure Databricks.
El explorador web puede acceder a los archivos almacenados en /FileStore desde https://<databricks-instance>/files/<path-to-file>?o=######. Por ejemplo, se puede acceder al archivo almacenado en /FileStore/my-stuff/my-file.txt desde https://<databricks-instance>/files/my-stuff/my-file.txt?o=######, donde el número después de o= es el mismo que en la dirección URL.
Nota:
También puede usar las interfaces de carga de archivos DBFS para colocar los archivos en el directorio /FileStore. Consulte Exploración y creación de tablas en DBFS.
Inserción de imágenes estáticas en cuadernos
Puede usar la ubicación files/ para insertar imágenes estáticas en los cuadernos:
displayHTML("<img src ='files/image.jpg'>")
O bien, sintaxis de importación de imágenes de Markdown:
%md

Ejemplo de uso de Markdown
Por ejemplo, supongamos que tiene el archivo de imagen de logotipo de Databricks en FileStore:
dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png
Al incluir el código siguiente en una celda de Markdown, la imagen se representa en la celda:
Ejemplo representado:
Ejemplo de uso de la API de DBFS y de la biblioteca HTTP requests de Python
Puede cargar imágenes estáticas mediante la API de DBFS y las solicitudes de la biblioteca HTTP de Python. En el ejemplo siguiente:
- Reemplace
<databricks-instance>por la dirección URL del área de trabajo de la implementación de Azure Databricks. - Reemplace
<token>por el valor del token de acceso personal. - Reemplace
<image-dir>por la ubicación enFileStoredonde desea cargar los archivos de imagen.
Nota:
Como procedimiento recomendado de seguridad, al autenticarse con herramientas automatizadas, sistemas, scripts y aplicaciones, Databricks recomienda usar tokens de acceso personales que pertenecen a entidades de servicio en lugar de usuarios del área de trabajo. Para crear tokens para entidades de servicio, consulte Administración de tokens para una entidad de servicio.
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)
Escalado de imágenes estáticas
Para escalar el tamaño de una imagen que ha guardado en DBFS, copie la imagen en /FileStore y, a continuación, cambie el tamaño mediante parámetros de imagen en 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;">''')
Ejemplo de cuaderno: uso de una biblioteca de JavaScript
En este cuaderno se muestra cómo usar FileStore para contener una biblioteca de JavaScript.