(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo reutilizar notebooks con %run en Databricks

João Barros 09 de July de 2026 4 min de lectura

Copiar y pegar las mismas funciones en cada notebook de Databricks hace que el código sea difícil de mantener: una sola corrección hay que repetirla en varios sitios. Para reutilizar código entre notebooks en Databricks existe el comando mágico %run, que ejecuta otro notebook y pone sus funciones y variables a disposición del notebook actual. El resultado es un único lugar para mantener las utilidades compartidas, sin duplicación.

Requisitos previos

  • Acceso a un workspace de Databricks.
  • Un cluster activo para ejecutar los notebooks.
  • Conocimientos básicos de Python.

Paso 1: Crear el notebook de utilidades

Crea un notebook llamado utils en la misma carpeta donde vas a trabajar. Este notebook sirve solo para guardar las funciones y variables que quieres compartir — puede contener cualquier código Python, desde constantes hasta funciones auxiliares. Escribe lo siguiente en una celda:

# Notebook: utils
PAIS_PADRAO = "Portugal"

def saudacao(nome):
    return f"Olá, {nome}!"

def contar_linhas(df):
    return df.count()

No necesitas ejecutar este notebook manualmente. El comando %run se encarga de eso cuando lo llamas desde otro notebook.

Paso 2: Colocar los notebooks en la misma carpeta

El comando %run acepta rutas relativas. Si el notebook utils está en la misma carpeta que tu notebook principal, referéncialo con ./utils. Para carpetas diferentes, usa la ruta completa, por ejemplo /Workspace/Users/tu-email/utils. Comprueba en el explorador del Workspace que ambos notebooks están donde esperas.

Paso 3: Llamar al notebook con %run

En tu notebook principal, crea una celda solo con el comando %run. Este comando debe estar solo en la celda — no puedes mezclarlo con otro código Python en la misma celda.

%run ./utils

Al ejecutar esta celda, Databricks corre el notebook utils de principio a fin y trae todas sus definiciones al contexto actual. Es como si hubieras escrito ese código en el propio notebook principal.

Paso 4: Usar las funciones y variables importadas

Después del %run, las funciones saudacao y contar_linhas y la variable PAIS_PADRAO ya están disponibles. Pruébalas en una celda nueva:

print(saudacao("bConcepts"))
print("País padrão:", PAIS_PADRAO)

dados = [("Ana", 30), ("Rui", 25)]
df = spark.createDataFrame(dados, ["nome", "idade"])
print("Total de linhas:", contar_linhas(df))

Fíjate en que no volviste a definir ninguna de estas funciones: todas vinieron del notebook utils. Esa es la ganancia — escribes una vez, usas en cualquier lugar.

Paso 5: Reutilizarlo en otro notebook

La gran ventaja aparece cuando tienes varios notebooks. Crea un segundo notebook, por ejemplo relatorio, en la misma carpeta y añade también %run ./utils ahí, en su propia celda. Todas las funciones quedan disponibles sin copiar una sola línea. Si algún día corriges la función saudacao en el notebook utils, todos los notebooks que hacen %run usan automáticamente la versión corregida.

Verificar el resultado

Si todo salió bien, la celda del Paso 4 muestra:

Olá, bConcepts!
País padrão: Portugal
Total de linhas: 2

Si aparece el error NameError: name 'saudacao' is not defined, significa que la celda del %run no se ejecutó antes, o que la ruta es incorrecta. Asegúrate de haber ejecutado primero la celda del %run y de que el nombre en ./utils coincide exactamente — las mayúsculas y minúsculas cuentan.

Consejo: %run comparte el mismo contexto, por eso las variables quedan accesibles. Si necesitas ejecutar un notebook de forma aislada y recibir un valor de retorno, usa mejor dbutils.notebook.run("utils", 60).

Conclusión

Con %run pasas a tener una única fuente de verdad para funciones y configuración compartidas, lo que reduce errores y facilita el mantenimiento. A partir de aquí, organiza tus utilidades por temas — por ejemplo, un notebook para lectura de datos y otro para validaciones — y considera versionarlas con Databricks Repos y Git. ¿Qué funciones repites hoy en tus notebooks y que ya podrías mover a un utils?