Todos los productos
Search
Centro de documentos

DataWorks:Desarrollo avanzado de notebooks

Última actualización: Sep 25, 2026

Mejore la eficiencia del desarrollo mediante la reutilización de código, el montaje de conjuntos de datos y la gestión de parámetros. Conéctese a motores de cómputo como MaxCompute Spark, EMR Serverless Spark y AnalyticDB for Spark.

Nota

Se recomienda leer Basic Notebook Development.

Diferencias entre entornos

DataWorks Notebook es una herramienta de desarrollo y análisis programable que se ejecuta en dos entornos:

  • Entorno de desarrollo: cuando se ejecuta una celda en la página de edición de DataWorks Notebook dentro de DataStudio, el código se procesa en una instancia del entorno de desarrollo personal. Esto permite validar y depurar con rapidez.

  • Entorno de producción: después de enviar y publicar un nodo de DataWorks Notebook, la programación periódica o la retroalimentación de datos desencadenan su ejecución. Esta se realiza en una instancia de tarea efímera y aislada, lo que garantiza ejecuciones estables y confiables en producción.

Tenga en cuenta estas diferencias al escribir código que deba funcionar en ambos entornos.

Diferencias de funciones

Función

Entorno de desarrollo (ejecución de una celda)

Entorno de producción (programación periódica, retroalimentación de datos)

Referencia a recursos del proyecto (.py)

  • Referencia inicial: el recurso se descarga automáticamente y entra en vigor.

  • Después de una actualización: haga clic en el botón Restart de la barra de herramientas para volver a cargar el módulo .py actualizado.

    Importante

    En la configuración de DataStudio, cambie el ajuste Dataworks › Notebook › Resource Reference: Download Strategy a autoOverwrite.

Entra en vigor automáticamente.

Lectura y escritura de conjuntos de datos (OSS/NAS)

Monte el conjunto de datos en el entorno de desarrollo personal.

Monte el conjunto de datos en las configuraciones de programación.

Referencia a parámetros del espacio de trabajo (${...})

Los parámetros se sustituyen automáticamente por sus valores antes de ejecutar el código.

Los parámetros se sustituyen automáticamente por sus valores antes de ejecutar la tarea.

Gestión de sesiones de Spark

La sesión de Spark tiene un tiempo de espera de inactividad de dos horas y se libera automáticamente.

DataWorks crea y destruye automáticamente una sesión de corta duración para cada instancia de tarea.

Reutilización de código y datos en producción

Referencia a recursos del proyecto (archivos .py)

Encapsule las funciones o clases comunes en archivos .py y refiriéralos como recursos de MaxCompute mediante ##@resource_reference{"custom_name.py"}.

  1. Cree y publique un recurso de Python

    1. En el panel de navegación izquierdo de DataStudio de DataWorks, haga clic en el icono image para ir a Resource Management.

    2. En el árbol de Resource Management, haga clic con el botón derecho en el directorio de destino o haga clic en + en la esquina superior derecha. Seleccione New Resource > MaxCompute Python y asigne al recurso el nombre my_utils.py.

    3. En la sección Document Content, haga clic en Online Editing, pegue el código de la función auxiliar ya depurado en el editor y haga clic en Save.

      # my_utils.py
      def greet(name):
          return f"Hello, {name} from resource file!"
    4. En la barra de herramientas, haga clic en Save y luego en Publish. De este modo, el recurso queda visible tanto para las tareas de desarrollo como para las de producción.

  2. Refiera el recurso en un notebook

    En la primera línea de una celda de Python del notebook, utilice la sintaxis ##@resource_reference para referir el recurso publicado.

    ##@resource_reference{"my_utils.py"}
    # If the resource is in a directory, such as my_folder/my_utils.py, you still use ##@resource_reference{"my_utils.py"} without the directory name.
    from my_utils import greet
    message = greet('DataWorks')
    print(message)
  3. Depure y ejecute en el entorno de desarrollo

    Ejecute la celda de Python. Se imprime el siguiente resultado:

    Hello, DataWorks from resource file!
    Importante

    Cuando se depura y ejecuta en el entorno de desarrollo, el sistema detecta la declaración ##@resource_reference y descarga el archivo de destino desde Resource Management hacia workspace/_dataworks/resource_references en su directorio personal.

    Si ocurre un error de ModuleNotFoundError, haga clic en el botón Restart de la barra de herramientas del editor para volver a cargar el recurso y vuelva a intentarlo.

  4. Publique en el entorno de producción y compruebe

    Después de hacer clic en Save y Publish para este nodo de Notebook, vaya a Operation and Maintenance Center > Auto Triggered Task y haga clic en Test para ejecutarlo. Una vez que la tarea se ejecute correctamente, verá la salida Hello, DataWorks from resource file! en los registros.

    Importante

    Si ocurre un error de There is no file with id ..., asegúrese de haber publicado primero el recurso de Python en el entorno de producción.

Para más operaciones, consulte MaxCompute resources and functions .

Lectura y escritura de conjuntos de datos (OSS/NAS)

Lea y escriba archivos grandes almacenados en OSS o NAS durante la ejecución de tareas del notebook.

Depuración en el entorno de desarrollo

  1. Monte un conjunto de datos: vaya a la página de detalles de su entorno de desarrollo personal. En Storage Settings > Datasets, configure el conjunto de datos.

  2. Acceso en el código: el conjunto de datos se monta en la ruta de montaje de su entorno de desarrollo personal. Puede leer o escribir directamente en esta ruta desde el código.

    # Assume you have mounted a dataset to /mnt/data/dataset in your personal development environment.
    import pandas as pd
    # Use the mount path directly.
    file_path = '/mnt/data/dataset/testfile.csv'
    df = pd.read_csv(file_path)
    # Use PyODPS to write the data to MaxCompute.
    o = %odps
    o.write_table('mc_test_table', df, overwrite=True)
    print(f"Successfully wrote data to the MaxCompute table mc_test_table")

Despliegue en producción

  1. Monte el conjunto de datos: en el panel de navegación derecho del editor de nodos de notebook, vaya a Scheduling Settings > Scheduling Policy y agregue el mismo conjunto de datos.

  2. Acceso en el código: después de enviar y publicar el notebook, el conjunto de datos se montará en la ruta de montaje del entorno de producción. Puede leer o escribir directamente en esta ruta desde el código.

    # Assume the dataset is mounted to /mnt/data/dataset in the production environment.
    import pandas as pd
    # Use the mount path directly.
    file_path = '/mnt/data/dataset/testfile.csv'
    df = pd.read_csv(file_path)
    # Use PyODPS to write the data to MaxCompute.
    o = %odps
    o.write_table('mc_test_table', df, overwrite=True)
    print(f"Successfully wrote data to the MaxCompute table mc_test_table")
Para más operaciones, consulte Use datasets in a personal development environment .

Referencia a parámetros del espacio de trabajo

Importante

Esta función solo está disponible en DataWorks Professional Edition y versiones posteriores.

Además de scheduling parameters, DataWorks proporciona Workspace Parameters para reutilizar configuraciones globales y aislar entornos entre tareas y nodos. Refiéralos en celdas SQL y de Python mediante ${workspace.param}, donde param es el nombre del parámetro.

  1. Cree los parámetros del espacio de trabajo: en DataWorks, vaya a Operation and Maintenance Center > Scheduling Settings > Workspace Parameters para crear los parámetros.

  2. Refiera los parámetros del espacio de trabajo:

    • Refiera un parámetro del espacio de trabajo en una celda SQL.

      SELECT '${workspace.param}';

      Cuando la consulta se ejecuta correctamente, se imprime el valor resuelto del parámetro.

    • Refiera un parámetro del espacio de trabajo en una celda de Python.

      print('${workspace.param}')

      Cuando el código se ejecuta correctamente, se imprime el valor resuelto del parámetro.

    Para más detalles, consulte Use workspace parameters .

Interacción con motores de cómputo mediante comandos mágicos

Los comandos mágicos (con prefijo % o %%) conectan una celda de Python a los recursos de cómputo sin necesidad de codificar credenciales ni detalles de conexión.

Conexión a MaxCompute

Nota

Antes de conectarse a un recurso de cómputo de MaxCompute, asegúrese de haber bound a MaxCompute compute resource.

  • %odps: obtención de un objeto de entrada de PyODPS

    No requiere codificar un AccessKey.

    1. Utilice un comando mágico para crear una conexión a MaxCompute. Introduzca %odps. Aparecerá un selector de recursos de cómputo de MaxCompute en la esquina inferior derecha (que selecciona automáticamente un recurso). Para cambiar de proyecto de MaxCompute, haga clic en el nombre del proyecto en la esquina inferior derecha.

      o=%odps 
    2. Utilice el recurso de cómputo de MaxCompute devuelto para ejecutar un script de PyODPS.

      Por ejemplo, para obtener todas las tablas del proyecto actual:

      with o.execute_sql('show tables').open_reader() as reader:
          print(reader.raw)
  • %maxframe: establecimiento de una conexión de MaxFrame

    Crea una sesión de MaxFrame para el procesamiento distribuido de datos similar a pandas en MaxCompute.

    # Connect to and access the MaxCompute MaxFrame session.
    mf_session = %maxframe
    df = mf_session.read_odps_table('your_mc_table')
    print(df.head())
    # After development and debugging, destroy the session to release resources.
    mf_session.destroy()

Conexión a recursos de cómputo de Spark

DataWorks Notebook admite varios motores de Spark, cada uno con métodos de conexión, contextos de ejecución y ciclos de vida de recursos distintos.

Importante

Un solo nodo de notebook puede conectarse a un único tipo de recurso de cómputo mediante un comando mágico.

Comparación de motores

Función

MaxCompute Spark

EMR Serverless Spark

AnalyticDB for Spark

Comando de conexión

%maxcompute_spark

%emr_serverless_spark

%adb_spark add

Nota

Después de ejecutar el comando, el contexto de ejecución de todo el kernel del notebook cambia al entorno remoto de PySpark. En las celdas siguientes, puede escribir código PySpark directamente.

Requisitos previos

Vincular un recurso de cómputo de MaxCompute.

Vincular un recurso de cómputo de EMR y crear un Livy Gateway.

Vincular un recurso de cómputo de AnalyticDB for Spark.

Modo del entorno de desarrollo

Crea o reutiliza automáticamente una sesión de Livy.

Se conecta a un Livy Gateway existente para crear una sesión.

Crea o reutiliza automáticamente un Spark Connect Server.

Modo del entorno de producción

Modo Livy: envía trabajos de Spark a través del servicio Livy.

Modo por lotes spark-submit: procesamiento por lotes puro que no conserva el estado de la sesión.

Modo Spark Connect Server: interactúa a través del servicio Spark Connect.

Liberación de recursos en producción

La sesión se libera automáticamente cuando termina la instancia de tarea.

Los recursos se limpian automáticamente cuando termina la instancia de tarea.

Los recursos se liberan automáticamente cuando termina la instancia de tarea.

Casos de uso

Procesamiento por lotes y tareas ETL estrechamente integrados con el ecosistema de MaxCompute.

Tareas de análisis complejas que requieren configuraciones flexibles e interacción con el ecosistema de big data de código abierto, como Hudi e Iceberg.

Consultas interactivas y análisis de alto rendimiento en tablas C-Store de AnalyticDB for MySQL.

MaxCompute Spark

Nota

Antes de conectarse a un recurso de cómputo de MaxCompute, asegúrese de haber bound a MaxCompute compute resource.

Conéctese al motor Spark integrado de su proyecto de MaxCompute a través de Livy.

  1. Establezca la conexión: ejecute el siguiente comando en una celda de Python. El sistema crea o reutiliza automáticamente una sesión de Spark.

    # Create a Spark Session.
    %maxcompute_spark
  2. Ejecute código PySpark: una vez establecida la conexión, utilice el cell magic %%spark para ejecutar código PySpark en una nueva celda de Python.

    # When you use MaxCompute Spark, the Python cell must start with %%spark.
    %%spark
    df = spark.sql("SELECT * FROM your_mc_table LIMIT 10")
    df.show()
  3. Libere la conexión manualmente: después de desarrollar y depurar, puede detener o eliminar la sesión de forma manual. Al ejecutarse en un entorno de producción, el sistema detiene y elimina automáticamente la sesión de Livy de la instancia de tarea actual.

    # Clean up the Spark session and stop the Livy session.
    %maxcompute_spark stop
    # Clean up the Spark session, then stop and delete the Livy configuration.
    %maxcompute_spark delete

EMR Serverless Spark

Nota

Antes de conectarse a un recurso de cómputo, bind an EMR Serverless Spark compute resource en el espacio de trabajo y create a Livy Gateway.

Conéctese a EMR Serverless Spark a través de un Livy Gateway existente.

  1. Establezca la conexión: antes de ejecutar el comando, debe seleccionar el recurso de cómputo de EMR y el Livy Gateway en la esquina inferior derecha de la celda.

    # Basic connection
    %emr_serverless_spark
    # Or, to pass custom Spark parameters at connection time, use two percent signs (%%).
    %%emr_serverless_spark
    {
      "spark_conf": {
        "spark.emr.serverless.environmentId": "<EMR_Serverless_Spark_runtime_environment_ID>",
        "spark.emr.serverless.network.service.name": "<EMR_Serverless_Spark_network_connection_ID>",
        "spark.driver.cores": "1",
        "spark.driver.memory": "8g",
        "spark.executor.cores": "1",
        "spark.executor.memory": "2g",
        "spark.driver.maxResultSize": "32g"
      }
    }
    Nota

    Relación entre los parámetros personalizados y las configuraciones globales

    • Comportamiento predeterminado: los parámetros personalizados definidos aquí se aplican únicamente a la sesión actual. Si no proporciona parámetros personalizados, el sistema utiliza los parámetros globales configurados en Admin Center.

    • Uso recomendado: para las configuraciones que deben reutilizarse en varias tareas o por varios usuarios, se recomienda configurarlas globalmente en Admin Center > Serverless Spark > SPARK parameters. Así se garantiza la coherencia y se simplifica la gestión.

    • Regla de prioridad: cuando un mismo parámetro se define tanto en los parámetros personalizados como en la configuración global, la opción Configuration Priority de Admin Center determina qué ajuste entra en vigor.

      • Si está seleccionada: la configuración global anula los parámetros personalizados de esta sesión.

      • Si no está seleccionada: los parámetros personalizados de esta sesión anulan la configuración global.

  2. (Opcional) Vuelva a conectarse: si un administrador elimina accidentalmente el token desde la página de Livy Gateway, ejecute el siguiente comando para volver a crearlo.

    # Reconnect and refresh the Livy token for the current personal development environment.
    %emr_serverless_spark refresh_token
  3. Ejecute código PySpark o SQL: tras establecer la conexión correctamente, el kernel cambia. Puede escribir código PySpark directamente en una celda de Python o escribir SQL en una celda de EMR Spark SQL.

    1. Envíe y ejecute código SQL en el recurso de cómputo desde una celda de EMR Spark SQL

      Después de establecer una conexión con %emr_serverless_spark, puede escribir instrucciones SQL directamente en una celda de EMR Spark SQL sin necesidad de seleccionar un recurso de cómputo en la celda.

      La celda de EMR Spark SQL reutiliza la conexión de %emr_serverless_spark y envía el código al recurso de cómputo de destino para su ejecución.

      INSERT INTO employees VALUES
          (6, 'Fiona', 'Engineering', 98000.0),
          (7, 'George', 'Sales', 77000.0),
          (8, 'Hannah', 'Marketing', 72000.0),
          (9, 'Ian', 'Engineering', 105000.0),
          (10, 'Julia', 'HR', 68000.0);
    2. Envíe y ejecute código PySpark en el recurso de cómputo con Python

      Después de establecer una conexión con %emr_serverless_spark, puede enviar y ejecutar código PySpark en una nueva celda de Python. No es necesario agregar el prefijo %%spark en la celda.

      df = spark.sql("SELECT * FROM employees;")
      df.show()
      +---+-------+-----------+--------+
      | id|   name| department|  salary|
      +---+-------+-----------+--------+
      |  1|  Alice|Engineering| 95000.0|
      |  2|    Bob|  Marketing| 75000.0|
      |  3|Charlie|Engineering|110000.0|
      |  4|  Diana|         HR| 70000.0|
      |  5|   Evan|      Sales| 80000.0|
      |  6|  Fiona|Engineering| 98000.0|
      |  7| George|      Sales| 77000.0|
      |  8| Hannah|  Marketing| 72000.0|
      |  9|    Ian|Engineering|105000.0|
      | 10|  Julia|         HR| 68000.0|
      +---+-------+-----------+--------+
  4. Libere la conexión manualmente

    Importante

    Si varios usuarios comparten un Livy Gateway, los comandos stop o delete afectan a todos los que utilizan la puerta de enlace. Utilice estos comandos con precaución.

    # Clean up the Spark session and stop the Livy session.
    %emr_serverless_spark stop
    # Clean up the Spark session, then stop and delete the Livy configuration.
    %emr_serverless_spark delete

AnalyticDB for Spark

Nota

Antes de conectarse al recurso de cómputo, bind an AnalyticDB for Spark compute resource en el espacio de trabajo.

Conéctese a un motor de AnalyticDB for Spark mediante la creación de un Spark Connect Server.

  1. Establezca la conexión: para garantizar la conectividad de red, debe configurar correctamente el ID del vSwitch y el ID del security group en los parámetros de conexión. Antes de ejecutar el comando, seleccione el recurso de cómputo de ADB Spark en la esquina inferior derecha de la celda.

    # You must configure the vSwitch ID and security group ID to establish a network connection.
    %adb_spark add \
     --spark-conf spark.adb.version=3.5 \
     --spark-conf spark.adb.eni.enabled=true \
     --spark-conf spark.adb.eni.vswitchId=<vSwitch_ID_of_ADB> \
     --spark-conf spark.adb.eni.securityGroupId=<security_group_id_of_your_personal_development_environment>

    Cómo encontrar el ID del vSwitch y el ID del security group

    • ID del vSwitch (vswitchId): vaya a la consola de AnalyticDB for MySQL de Alibaba Cloud. En la página de detalles de la instancia, busque el vSwitch ID en la sección Network Information.

    • ID del security group (securityGroupId): vaya a la página de detalles de su entorno de desarrollo personal. En la sección Network Settings, busque el ID del Security Group seleccionado, que comienza con sg-.

      Importante

      Para garantizar la conectividad de red, se recomienda seleccionar la misma VPC y el mismo vSwitch que su instancia de AnalyticDB for Spark al crear un entorno de desarrollo personal.

  2. Ejecute código PySpark: una vez establecida la conexión correctamente, ejecute código PySpark en una nueva celda de Python.

    # You can run operations only on C-Store tables.
    df = spark.sql("SELECT * FROM my_adb_cstore_table LIMIT 10")
    df.show()
    Nota : actualmente, el motor de AnalyticDB for Spark solo puede procesar tablas C-Store que tengan el atributo 'storagePolicy'='COLD' .
  3. Libere la conexión manualmente: después de depurar, limpie manualmente la sesión de conexión para ahorrar recursos. En producción, los recursos se limpian automáticamente.

    %adb_spark cleanup

Conexión a un recurso de cómputo de Lindorm Ray

El resource group de Ray del motor de cómputo de Lindorm proporciona cómputo distribuido para cargas de trabajo de IA de extremo a extremo. Úselo para el desarrollo interactivo en notebooks y, después, publíquelo como una tarea de producción programada.

Antes de empezar, complete los siguientes pasos.

  • Al comprar una instancia de Lindorm, seleccione Yes en Enable Compute Engine.

  • Agregue su clúster de Lindorm como recurso de cómputo de DataWorks. Para más información, consulte Bind a Lindorm compute resource.

  • Enable a Ray resource group para su clúster en la consola de Lindorm. Al crear el resource group, especifique la imagen correcta en Advanced Settings para garantizar un entorno coherente.

    ¿Cómo configuro la imagen del resource group de Ray?

    Cuando cree un resource group de Ray en la consola de Lindorm, busque Advanced Settings e introduzca el siguiente contenido JSON. Sustituya region en la dirección de la imagen por la región donde se encuentra su clúster de Lindorm. Por ejemplo, sustituya beijing por shanghai.

    {
      "IMAGE": "spark-repo-beijing-registry-vpc.cn-beijing.cr.aliyuncs.com/lindorm-compute/ray:2.39.0-0.7.0-py311-cpu"
    }
  • Su entorno de desarrollo personal y el resource group serverless deben estar en la misma VPC que su clúster de Lindorm para garantizar la conectividad de red.

  1. Establezca la conexión: ejecute el comando mágico %lindorm_ray en una celda de Python. Después de ejecutar el comando, aparecerá un selector de recursos de cómputo en la esquina inferior derecha de la celda. Seleccione su recurso de cómputo de Lindorm y el resource group de Ray que creó.

    # Connect to the specified Lindorm Ray resource group.
    %lindorm_ray
    Importante
    • Después de conectarse a un recurso de cómputo de Lindorm Ray, ya no podrá ejecutar celdas SQL en el mismo notebook. El motor de Lindorm Ray se centra en ejecutar código Python y Ray.

    • Si ejecuta la misma celda de código varias veces, el sistema finaliza automáticamente el trabajo de Ray anterior e inicia uno nuevo. Esto evita el desperdicio de recursos y los conflictos entre tareas.

  2. Ejecute código Ray: tras establecer la conexión correctamente, puede escribir y ejecutar código Ray directamente en una nueva celda de Python. Los registros se transmiten al área de salida de la celda en tiempo real para facilitar la depuración interactiva.

    En el siguiente ejemplo se define una tarea remota sencilla con el decorador @ray.remote. La tarea se ejecuta en el clúster de Ray, y los registros junto con el resultado final se devuelven al área de salida de la celda.

    import ray
    import time
    @ray.remote
    def hello_world():
      print("Hello from Lindorm Ray!")
      time.sleep(5)
      return "Task finished."
    # Submit the remote task.
    result_ref = hello_world.remote()
    print(ray.get(result_ref))
  3. (Opcional) Especifique parámetros de inicio personalizados: para configurar ajustes adicionales en el entorno de Ray, como instalar paquetes de Python de terceros o cargar archivos de código locales, utilice %%lindorm_ray para establecer la conexión.

    • Ejemplo 1: instalación de dependencias

      Utilice el parámetro pip para instalar el paquete jieba en el entorno de Ray.

      %%lindorm_ray
      {
        "runtime_env": {
          "pip": ["jieba"]
        }
      }

      Una vez que el entorno esté listo, importe y utilice el paquete en las tareas de Ray posteriores. En el siguiente ejemplo se muestra cómo llamar a jieba en una función remota para segmentar palabras en chino:

      import ray 
      @ray.remote
      def do_work(x):
          import jieba
          return "/".join(jieba.cut(x))
      print(ray.get(do_work.remote("Welcome to the DataWorks LindormRay solution")))
    • Ejemplo 2: carga y uso de recursos de DataWorks

      Utilice el parámetro working_dir para cargar recursos de Resource Management al clúster de Ray y poder importarlos en sus tareas.

      Importante
      • Cuando utiliza working_dir para cargar recursos, los archivos se transfieren directamente desde su entorno de desarrollo al clúster de Ray. Se aplica un límite de tamaño de 100 MB. Si el paquete de recursos es demasiado grande, la carga podría fallar o el nodo de Ray podría volverse inestable.

      • Para recursos o dependencias grandes (más de 100 MB), cárguelos en OSS y descárguelos desde OSS en su código, o bien empaquételos en una imagen personalizada para mejorar la estabilidad y el rendimiento.

      # Reference and declare the path for a resource from Resource Management.
      %%lindorm_ray
      {
          "runtime_env": {
              "working_dir": "/mnt/workspace/_dataworks/resource_references"
          }
      }

      Suponga que cargó un archivo llamado ray_resource.py en Resource Management de DataWorks. Al ejecutar la siguiente celda, el sistema analiza la declaración ##@resource_reference y descarga el recurso correspondiente en /mnt/workspace/_dataworks/resource_references.

      Código de ejemplo en ray_resource.py:

      def fun():
          print("This is a test function in ray_resource.py")
      Importante

      En el entorno de desarrollo, después de ejecutar la celda que contiene ##@resource_reference, debe volver a ejecutar la celda %%lindorm_ray anterior. Al volver a ejecutar esta celda, se incluyen los recursos descargados en working_dir y se cargan en el clúster de Ray. En el entorno de producción no es necesario volver a ejecutar la celda.

      import ray 
      ##@resource_reference{"ray_resource.py"}
      @ray.remote
      def do_work(x):
          print('Ray says:', x)
          from ray_resource import fun
          fun()
          return x
      worker = do_work.remote("Welcome to the DataWorks LindormRay solution")
      print(ray.get(worker))
  4. Programación y O&M en producción: después de desarrollar y depurar, envíe y publique este nodo de notebook. Se programará periódicamente como un nodo de Lindorm Ray dentro de un DAG.

    • Parametrización: su código puede utilizar los parámetros de programación estándar de DataWorks, como ${bizdate}.

    • Visualización de registros: en producción, el sistema carga de forma predeterminada solo el primer 1 MB de registros para evitar problemas de rendimiento. Si los registros se truncan, la salida proporciona un enlace para consultar los registros completos de la tarea en la consola de Lindorm.

    • Liberación de recursos: cuando termina una tarea de producción programada, la tarea de Lindorm Ray entra en un estado terminal y libera los recursos. Durante el desarrollo interactivo, finalice la tarea reiniciando el kernel o cerrando el notebook.

Apéndice: referencia rápida de comandos mágicos

Comando mágico

Descripción

Motor de cómputo

o = %odps

Obtiene un objeto de entrada de PyODPS.

MaxCompute

mf_session = %maxframe

Establece una conexión de MaxFrame.

%maxcompute_spark

Crea una sesión de Spark.

MaxCompute Spark

%maxcompute_spark stop

Limpia la sesión de Spark y detiene la sesión de Livy.

%maxcompute_spark delete

Limpia la sesión de Spark, y después detiene y elimina la configuración de Livy.

%%spark

En una celda de Python, se conecta a un recurso de cómputo de Spark existente.

%emr_serverless_spark

Crea una sesión de Spark.

EMR Serverless Spark

%emr_serverless_spark info

Muestra los detalles de Livy Gateway.

%emr_serverless_spark stop

Limpia la sesión de Spark y detiene la sesión de Livy.

%emr_serverless_spark delete

Limpia la sesión de Spark, y después detiene y elimina la configuración de Livy.

%emr_serverless_spark refresh_token

Actualiza el token de Livy para el entorno de desarrollo personal.

%adb_spark add

Crea una sesión reutilizable de ADB Spark y se conecta a ella.

AnalyticDB for Spark

%adb_spark info

Muestra la información de la sesión de Spark.

%adb_spark cleanup

Detiene y limpia la sesión de conexión actual de Spark.

%lindorm_ray

Establece una conexión de Lindorm Ray.

Lindorm Ray

%%lindorm_ray

Establece una conexión de Lindorm Ray y configura un entorno de ejecución personalizado, por ejemplo, para instalar dependencias o cargar código.

Preguntas frecuentes

  • P: ¿Por qué aparece un error de ModuleNotFoundError o There is no file with id ... al hacer referencia a un recurso del espacio de trabajo?

    R: Compruebe lo siguiente:

    • Vaya a Data Development > Resource Management y asegúrese de que el recurso de Python de MaxCompute esté guardado. Si este error ocurre en el entorno de producción, confirme que también se haya publicado el recurso.

    • Haga clic en el botón Restart de la barra de herramientas del editor de Notebook para volver a cargar el recurso.

  • P: Después de actualizar un recurso del espacio de trabajo, ¿por qué Notebook sigue usando la versión anterior?

    R: En la configuración de DataStudio, establezca DataWorks › Notebook › Resource Reference: Download Strategy en autoOverwrite y, a continuación, haga clic en Restart Kernel en la barra de herramientas de Notebook.

  • P: ¿Por qué aparece un error de FileNotFoundError en el entorno de desarrollo al hacer referencia a un conjunto de datos?

    R: Asegúrese de que el conjunto de datos esté montado en el entorno de desarrollo personal seleccionado.

  • P: La referencia a un conjunto de datos funciona en el entorno de desarrollo, pero falla en el de producción con el error Execute mount dataset exception! Please check your dataset config.

    R: Asegúrese de que el conjunto de datos esté montado en Scheduling Settings del nodo de Notebook y de que se haya otorgado autorización al conjunto de datos de OSS.

    En el área de configuración del conjunto de datos, si aparece un mensaje en rojo que indica "The current DataWorks resource group is not authorized" debajo de la lista desplegable, haga clic en el enlace Confirm Authorization ubicado a la derecha para otorgar los permisos.

  • P: ¿Cómo compruebo la versión de mi entorno de desarrollo personal?

    R: En su entorno de desarrollo personal, presione CMD+SHIFT+P e introduzca "ABOUT" para consultar la versión actual. Si alguna función requiere la versión 0.5.69 o posterior, utilice la opción One-click Upgrade que aparece en el aviso de actualización.

  • P: ¿Por qué falla la conexión con el motor de Spark?

    A: Siga estos pasos para solucionar el problema:

    • Comprobaciones generales: en la página de detalles del espacio de trabajo, vaya a la lista de recursos de cómputo. Asegúrese de que el recurso (MaxCompute, EMR o ADB) esté vinculado al espacio de trabajo y de que su cuenta tenga los permisos necesarios.

    • EMR Serverless Spark: compruebe que Livy Gateway se haya creado y funcione correctamente.

    • AnalyticDB for Spark: concéntrese en resolver los problemas de red. Asegúrese de que vswitchId y securityGroupId estén configurados correctamente y de que exista conectividad de red entre el entorno de desarrollo personal y la instancia de AnalyticDB for Spark. Revise las reglas del security group para comprobar que permiten la comunicación en los puertos necesarios.