es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede llamar a Notebook cuando se utiliza código en Scala en Databricks.

Estoy en una situación en la que puedo ejecutar correctamente el fragmento de código siguiente en Azure Databricks desde un CMD separado.

%run ./HSCModule

Sin embargo, me encuentro con problemas al incluir ese fragmento de código con otro código Scala que importa los paquetes siguientes y obtengo el siguiente error.

import java.io.{File, FileInputStream}
import java.text.SimpleDateFormat
import java.util.{Calendar, Properties}
import org.apache.spark.SparkException
import org.apache.spark.sql.SparkSession
import scala.collection.JavaConverters._
import scala.util._

ERROR = :168: error: ‘;;’ se esperaba pero se encontró ‘.’. %run
./HSCModule

Nota: También he utilizado dbutils.notebook.run y sigo enfrentando los mismos problemas.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en la sintaxis incorrecta al incluir el comando %run dentro del código scala. El comando %run es un comando específico del cuaderno de Databricks para ejecutar otro cuaderno dentro del cuaderno actual. No es un comando válido de scala y no debe incluirse en un bloque de código scala.

    Para ejecutar el cuaderno HSCModule desde dentro de un bloque de código scala, puedes utilizar el comando dbutils.notebook.run. La sintaxis para utilizar dbutils.notebook.run es la siguiente:

    dbutils.notebook.run("ruta_del_cuaderno", segundos_de_timeout, Map("clave" -> "valor"))
    

    Reemplaza ruta_del_cuaderno por la ruta del cuaderno HSCModule, segundos_de_timeout por el tiempo máximo permitido para la ejecución del cuaderno, y Map("clave" -> "valor") por cualquier parámetro que necesite ser pasado al cuaderno HSCModule.

    Asegúrate de importar com.databricks.dbutils_v1.DBUtilsHolder.dbutils antes de utilizar el comando dbutils.notebook.run.

    Una vez que hayas reemplazado %run ./HSCModule por dbutils.notebook.run("ruta_del_cuaderno", segundos_de_timeout, Map("clave" -> "valor")) en tu bloque de código scala y realizado las sustituciones necesarias, debería ejecutarse sin problemas.

Comments are closed.