Introducción

El primer paso para crear una canalización para los datos es preparar el entorno. Una vez que el entorno esté listo, puede ejecutar un ejemplo de forma rápida y sencilla.

En este artículo, se realizarán estos pasos para ayudarlo a comenzar:

  1. Cree un recurso de Cognitive Services
  2. Creación de un clúster de Apache Spark
  3. Prueba de un ejemplo

Creación de un recurso de Cognitive Services

Para usar Cognitive Services para macrodatos, primero se debe crear una instancia de Cognitive Services para el flujo de trabajo. Hay dos tipos principales de servicios cognitivos: los servicios en la nube hospedado en Azure y servicios en contenedores administrados por los usuarios. Se recomienda comenzar con los servicios cognitivos basados en la nube, que son los más sencillos.

Servicios en la nube

Los servicios cognitivos basados en la nube son algoritmos inteligentes que se hospedan en Azure. Estos servicios se pueden usar sin necesidad de entrenamiento, solo hace falta una conexión a Internet. Puede crear un servicio cognitivo en Azure Portal o con la CLI de Azure.

Servicios en contenedores (opcional)

Si la aplicación o la carga de trabajo emplean conjuntos de datos grandes, necesitan redes privadas o no pueden establecer contacto con la nube, es posible que no se pueda establecer comunicación con los servicios en la nube. En esta situación, los servicios cognitivos en contenedores tienen estas ventajas:

  • Conectividad baja: puede implementar servicios cognitivos en contenedores en cualquier entorno informático, tanto en la nube como fuera de ella. Si la aplicación no puede establecer contacto con la nube, considere la posibilidad de implementar servicios cognitivos en contenedores en la aplicación.

  • Baja latencia: dado que los servicios en contenedores no necesitan la comunicación de ida y vuelta hacia y desde la nube, las respuestas se devuelven con latencias mucho más bajas.

  • Privacidad y seguridad de los datos: puede implementar servicios en contenedores en redes privadas, de modo que los datos confidenciales no salgan de la red.

  • Alta escalabilidad: los servicios en contenedores no tienen "límites de frecuencia" y se ejecutan en equipos administrados por el usuario. Por lo tanto, puede escalar los servicios cognitivos sin fin para administrar cargas de trabajo mucho más grandes.

Siga esta guía para crear un servicio cognitivo en contenedores.

Creación de un clúster de Apache Spark

Apache Spark™ es un marco de trabajo informático distribuido diseñado para el procesamiento de macrodatos. Los usuarios pueden trabajar con Apache Spark en Azure con servicios como Azure Databricks, Azure Synapse Analytics, HDInsight y Azure Kubernetes Services. Para usar Cognitive Services para macrodatos, primero se debe crear un clúster. Si ya tiene un clúster de Spark, pruebe un ejemplo.

Azure Databricks

Azure Databricks es una plataforma de análisis basada en Apache Spark con una configuración de un solo clic, flujos de trabajo optimizados y un área de trabajo interactiva. Se usa a menudo para la colaboración entre científicos de datos, ingenieros y analistas de negocios. Para usar Cognitive Services para macrodatos en Azure Databricks, siga estos pasos:

  1. Creación de un área de trabajo de Azure Databricks
  2. Creación de un clúster de Spark en Databricks
  3. Instalación de Cognitive Services para macrodatos
    • Creación de una biblioteca en el área de trabajo de Databricks
      Create library
    • Escriba las siguientes coordenadas de Maven: com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc3Repositorio:https://mmlspark.azureedge.net/maven
      Library Coordinates
    • Instalación de la biblioteca en un clúster
      Install Library on Cluster

Azure Synapse Analytics (opcional)

Opcionalmente, puede usar Synapse Analytics para crear un clúster de Spark. Azure Synapse Analytics reúne el almacenamiento de datos empresarial y el análisis de macrodatos. Este servicio ofrece la libertad de consultar los datos como prefiera, ya sea a petición sin servidor o con recursos aprovisionados a escala. Para empezar a usar Azure Synapse Analytics, siga estos pasos:

  1. Cree un área de trabajo de Synapse (versión preliminar).
  2. Cree un grupo de Apache Spark sin servidor (versión preliminar) mediante Azure Portal.

En Azure Synapse Analytics, Cognitive Services para macrodatos está instalado de forma predeterminada.

Azure Kubernetes Service

Si usa Cognitive Services en contenedores, una opción habitual para implementar Spark junto con contenedores es Azure Kubernetes Service.

Para empezar a usar Azure Kubernetes Service, siga estos pasos:

  1. Implementación de un clúster de Azure Kubernetes Service (AKS) mediante Azure Portal
  2. Instalación del gráfico de Helm de Apache Spark 2.4.0
  3. Instalación de un contenedor de servicios cognitivos mediante Helm

Prueba de un ejemplo

Después de configurar el entorno y el clúster de Spark, puede ejecutar un ejemplo corto. En esta sección se muestra cómo usar Cognitive Services para macrodatos en Azure Databricks.

Primero, puede crear un cuaderno en Azure Databricks. En el caso de otros proveedores de clústeres de Spark, use sus cuadernos o Spark Submit.

  1. Cree un cuaderno de Databricks; para ello, elija New notebook (Nuevo cuaderno) en el menú de Azure Databricks.

    Create a new notebook
  2. En el cuadro de diálogo Create Notebook (Crear cuaderno), seleccione Python como lenguaje y seleccione el clúster de Spark que creó anteriormente.

    New notebook details

    Seleccione Crear.

  3. Pegue este fragmento de código en el cuaderno nuevo.

from mmlspark.cognitive import *
from pyspark.sql.functions import col

# Add your subscription key from the Language service (or a general Cognitive Service key)
service_key = "ADD-SUBSCRIPTION-KEY-HERE"

df = spark.createDataFrame([
  ("I am so happy today, its sunny!", "en-US"),
  ("I am frustrated by this rush hour traffic", "en-US"),
  ("The cognitive services on spark aint bad", "en-US"),
], ["text", "language"])

sentiment = (TextSentiment()
    .setTextCol("text")
    .setLocation("eastus")
    .setSubscriptionKey(service_key)
    .setOutputCol("sentiment")
    .setErrorCol("error")
    .setLanguageCol("language"))

results = sentiment.transform(df)

# Show the results in a table
display(results.select("text", col("sentiment")[0].getItem("score").alias("sentiment")))

  1. Obtenga la clave de suscripción del menú Claves y punto de conexión del recurso Language en Azure Portal.
  2. Reemplace el marcador de posición de la clave de suscripción que aparece en el código del cuaderno de Databricks por su clave de suscripción.
  3. Seleccione el símbolo de reproducción (triángulo) situado en la esquina superior derecha de la celda del cuaderno para ejecutar el ejemplo. También puede seleccionar Run All (Ejecutar todo) en la parte superior del cuaderno para ejecutar todas las celdas. Las respuestas se muestran debajo de la celda de una tabla.

Resultados esperados

text opinión
I am so happy today, its sunny! 0.978959
I am frustrated by this rush hour traffic 0.0237956
The cognitive services on spark aint bad 0.888896

Pasos siguientes