Importación desde una consulta de Hive

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

En este artículo se describe cómo usar el módulo Importar datos en Machine Learning Studio (clásico) para obtener datos de clústeres de Hadoop y almacenamiento distribuido de HDInsight.

Nota

Se aplica a: solo Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

La importación de datos desde Hive es especialmente útil para cargar grandes conjuntos de datos o si desea procesar previamente los datos mediante un trabajo de MapReduce antes de cargar los datos en un experimento de aprendizaje automático.

Importante

A partir del 31 de julio de 2018, Microsoft Azure HDInsight versión 3.3 fue la última versión de HDInsight en Windows. Si tiene algún clúster de HDInsight en Windows 3.3 o versiones anteriores, debe migrar a HDInsight en Linux (versión 3.5 o posterior de HDInsight). Consulte la sección Versiones retiradas para obtener más información sobre las versiones retiradas de HDInsight. Machine Learning Studio (clásico) admitirá HDInsight en Linux en determinados escenarios.

Compatibilidad con HDInsight en Linux

Machine Learning Studio (clásico) tiene compatibilidad con HDInsight en Linux en los escenarios siguientes:

  • Blob de Hadoop 2.7.3 (HDI 3.6) como valor predeterminado, secundario de ADLS
  • Blob de Spark 2.1.0 (HDI 3.6) como valor predeterminado, secundario de ADLS
  • Blob de Spark 2.2.0 (HDI 3.6) como valor predeterminado, secundario de ADLS
  • Blob de Spark 2.3.0 (HDI 3.6) como valor predeterminado, secundario de ADLS

Problemas conocidos

Hay varios problemas conocidos con el uso del módulo Importar datos para consultas de Hive con HDInsight en Linux:

Importación de datos desde consultas de Hive

Uso del asistente

El módulo incluye un nuevo asistente para ayudarle a elegir una opción de almacenamiento, seleccionar entre las suscripciones y cuentas existentes y configurar rápidamente todas las opciones.

  1. Agregue el módulo Importación de datos al experimento. Puede encontrar el módulo en Studio (clásico), en la categoría Entrada y salida de datos .

  2. Haga clic en Iniciar asistente para importar datos y siga las indicaciones.

  3. Una vez completada la configuración, para copiar realmente los datos en el experimento, haga clic con el botón derecho en el módulo y seleccione Ejecutar seleccionado.

Si necesita editar una conexión de datos existente, el asistente carga todos los detalles de configuración anteriores para que no tenga que volver a empezar desde cero.

Establecimiento manual de propiedades de importación

En los pasos siguientes se describe cómo configurar manualmente el origen de la importación.

  1. Agregue el módulo Importación de datos al experimento. Puede encontrar el módulo en Studio (clásico), en la categoría Entrada y salida de datos .

  2. En Origen de datos, seleccione Consulta de Hive.

  3. En el cuadro de texto Consulta de base de datos de Hive , especifique los datos que desea leer mediante HiveQL.

    HiveQL es un lenguaje de consulta similar a SQL que también se puede usar para agregar datos y realizar el filtrado de datos antes de agregar los datos a Machine Learning Studio (clásico). Sin embargo, la consulta de Hive debe devolver los datos en un formato tabular.

    Por ejemplo, esta instrucción es una consulta válida de Hive:

    SELECT <column list> FROM table WHERE <expression>;

  4. Haga clic en el cuadro de texto HCatalog server URI (URI del servidor de HCatalog ) y escriba el nombre completo del clúster.

    Por ejemplo, si ha creado un clúster con el nombre mycluster001, use este formato: https://mycluster001.azurehdinsight.net

  5. Haga clic en el cuadro de texto Nombre de cuenta de usuario de Hadoop y pegue la cuenta de usuario de Hadoop que usó al aprovisionar el clúster.

  6. Haga clic en el cuadro de texto Contraseña de cuenta de usuario de Hadoop y escriba las credenciales que usó al aprovisionar el clúster.

    Para más información sobre la nomenclatura y autenticación de clústeres para Hadoop, consulte Aprovisionamiento de clústeres de Hadoop en HDInsight.

  7. En Ubicación de los datos de salida, seleccione la opción que indica dónde se almacenan los datos. Si los datos están en el sistema de archivos distribuido de Hadoop (HDFS), debe ser accesible a través de la misma cuenta y contraseña que acaba de escribir. Si los datos están en Azure, proporcione la ubicación y las credenciales de la cuenta de almacenamiento.

    • HDFS: escriba o pegue el URI del servidor HDFS. Asegúrese de usar el nombre del clúster de HDInsight sin el HTTPS:// prefijo.

    • Azure: para el nombre de la cuenta de almacenamiento de Azure, escriba el nombre de la cuenta de Azure. Por ejemplo, si la dirección URL completa de la cuenta de almacenamiento es https://myshared.blob.core.windows.net, escribiría myshared.

    • Clave de almacenamiento de Azure: copie y pegue la clave que se proporciona para acceder a la cuenta de almacenamiento.

    • En Nombre del contenedor de Azure, especifique el contenedor predeterminado para el clúster. Consulte la sección Sugerencias para obtener ayuda para averiguar qué contenedor usar.

  8. Seleccione la opción Usar resultados en caché si no prevé que los datos cambien mucho o si desea evitar tener que volver a cargar los datos cada vez que ejecute el experimento.

    Cuando se selecciona , si no hay ningún otro cambio en los parámetros del módulo, el experimento carga los datos la primera vez que se ejecuta el módulo y, después, usa una versión almacenada en caché del conjunto de datos.

    Si desea volver a cargar el conjunto de datos en cada iteración del conjunto de datos del experimento, anule la selección de la opción Usar resultados almacenados en caché . Los resultados también se vuelven a cargar cuando hay cambios en los parámetros de Importar datos.

  9. Ejecute el experimento.

Results

Cuando haya terminado, haga clic en el conjunto de datos de salida y seleccione Visualizar para ver si los datos se han importado correctamente.

Si recibe errores, compruebe los datos si faltan valores, columnas vacías adicionales o tipos de datos incompatibles.

Ejemplos

Para obtener ejemplos de cómo configurar un clúster de HDInsight y usar consultas de Hive en experimentos de aprendizaje automático, consulte estos recursos:

Aunque Hive ofrece características superiores para muchos tipos de limpieza y preprocesamiento de datos, después de la importación, es posible que estas herramientas sean útiles para preparar los datos para el modelado:

  • Use editar metadatos y otros módulos para cambiar los nombres de columna, especificar qué columnas contienen etiquetas y características y especificar el tipo de datos de columna. Para obtener ejemplos, consulte Procesamiento de conjuntos de datos.

  • Datos de texto posteriores al procesamiento mediante Python, para quitar signos de puntuación, marcar partes de voz y mucho más. Para obtener ejemplos, consulte Clasificación de texto.

  • Combine varias tablas de diferentes orígenes en una sola tabla de datos de entrenamiento. Para obtener ejemplos, consulte Mantenimiento predictivo.

Notas técnicas

Esta sección contiene detalles de implementación, sugerencias y respuestas a las preguntas más frecuentes.

Cómo determinar el contenedor predeterminado

Si creó el clúster aceptando todos los valores predeterminados, se creó un contenedor con el mismo nombre que el clúster al mismo tiempo que se creó el clúster. Ese contenedor es el contenedor predeterminado para el clúster. Sin embargo, si eligió la opción CUSTOM CREATE al crear un clúster, se le proporcionan dos opciones para seleccionar el contenedor predeterminado. La primera opción es seleccionar un contenedor existente. Al hacerlo, ese contenedor se convierte en el contenedor de almacenamiento predeterminado para el clúster. La segunda opción es Crear contenedor predeterminado. Al usar esta opción, el contenedor predeterminado tiene el mismo nombre que el clúster.

Cómo llamar a scripts de Python desde una consulta de Hive

Puede usar el módulo Importar datos para ejecutar consultas de Hive que llaman a UDF de Python para procesar registros.

Para más información, consulte Uso de Python con Hive y Pig en HDInsight.

Evitar problemas de memoria insuficiente al usar Hive para preprocesar datos

Cuando se usan consultas de Hive para extraer registros de orígenes de Big Data, a veces la configuración predeterminada del clúster de Hadoop es demasiado limitada para admitir la ejecución del trabajo de MapReduce. Por ejemplo, en estas notas de la versión para HDInsight, la configuración predeterminada se define como un clúster de cuatro nodos.

Si los requisitos del trabajo de MapReduce superan la capacidad disponible, las consultas de Hive podrían devolver un mensaje de error Memoria insuficiente, lo que hace que se produzca un error en la operación Importar datos. Si esto sucede, puede cambiar la asignación de memoria predeterminada para las consultas de Hive en el módulo Importar datos , como se muestra aquí:

Increase memory to maximum allowed on cluster

En este ejemplo, los comandos set mapreduce.map.memory.mb y set mapreduce.reduce.memory.mb se usan para aumentar la cantidad de memoria con el fin de usar el máximo permitido en el clúster.

Preguntas frecuentes

¿Cómo puedo evitar volver a cargar los mismos datos innecesariamente?

Si los datos de origen cambian, puede actualizar el conjunto de datos y agregar nuevos datos mediante la nueva ejecución de Importar datos. Sin embargo, si no desea volver a leer el origen cada vez que ejecute el experimento, seleccione TRUE para la opción Use cached results (Utilizar resultados almacenados en caché). Cuando esta opción se establece en TRUE, el módulo comprobará si el experimento se ha ejecutado anteriormente con las mismas opciones de origen y de entrada, y si se encuentra una ejecución anterior, se usan los datos de la memoria caché, en lugar de volver a cargar los datos desde el origen.

¿Puedo filtrar los datos a medida que se leen desde el origen?

El propio módulo Importar datos no admite el filtrado a medida que se leen los datos.

Para filtrar los datos antes de leerlos en Machine Learning Studio (clásico), use una consulta de Hive o un trabajo de MapReduce para agregar y transformar los datos.

También hay varias opciones para filtrar los datos después de cargarlos en Machine Learning Studio (clásico):

  • Use un script de R personalizado para obtener solo los datos que desee.
  • Use el módulo Dividir datos con una expresión relativa o una expresión regular para aislar los datos que desee y, a continuación, guárdelo como un conjunto de datos.

Nota

Si descubre que ha cargado más datos de los que necesita, puede sobrescribir el conjunto de datos en caché. Para ello, lea un nuevo conjunto de datos y guárdelo con el mismo nombre que los datos más antiguos y más grandes.

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Origen de datos List Origen de datos o receptor Azure Blob Storage El origen de datos puede ser HTTP, FTP, HTTPS anónimo o FTPS, un archivo en Azure BLOB Storage, una tabla de Azure, un Azure SQL Database, una base de datos de SQL Server local, una tabla de Hive o un punto de conexión de OData.
Consulta de base de datos de Hive cualquiera StreamReader Consulta HQL
URI del servidor de HCatalog cualquiera String Punto de conexión de Templeton
Nombre de la cuenta de usuario de Hadoop cualquiera String Nombre de usuario de HDFS/HDInsight de Hadoop
Contraseña de cuenta de usuario de Hadoop cualquiera SecureString Contraseña de HDFS/HDInsight de Hadoop
Ubicación de los datos de salida cualquiera DataLocation HDFS Especificación de HDFS o Azure para outputDir
URI del servidor de HDFS cualquiera String Punto de conexión de rest de HDFS
Nombre de la cuenta de almacenamiento de Azure cualquiera String Nombre de la cuenta de almacenamiento de Azure
Claves de Azure Storage cualquiera SecureString Claves de Azure Storage
Nombre del contenedor de Azure cualquiera String Nombre del contenedor de Azure
Tipo de contenido de datos Lista (subconjunto) Contenido de la dirección URL OData Tipo de formato de datos
Dirección URL de origen cualquiera String Dirección URL del origen de datos de Power Query
Uso de resultados almacenados en caché TRUE/FALSE Boolean FALSE description

Salidas

Nombre Tipo Descripción
Conjunto de datos de resultados Tabla de datos Conjunto de datos con datos descargados

Excepciones

Excepción Descripción
Error 0027 Se produce una excepción cuando dos objetos tienen que ser del mismo tamaño pero no lo son.
Error 0003 Se produce una excepción si una o varias de las entradas son nulas o están vacías.
Error 0029 Se produce una excepción cuando se pasa un URI no válido.
Error 0030 Se produce una excepción en cuando no es posible descargar un archivo.
Error 0002 Se produce una excepción si uno o más parámetros no se pudieron analizar o convertir del tipo especificado al tipo requerido por el método de destino.
Error 0009 Se produce una excepción si se especifica incorrectamente el nombre de la cuenta de almacenamiento de Azure o el nombre del contenedor.
Error 0048 Se produce una excepción cuando no es posible abrir un archivo.
Error 0015 Se produce una excepción si se ha producido un error en la conexión de base de datos.
Error 0046 Se produce una excepción si no es posible crear el directorio en la ruta de acceso especificada.
Error 0049 Se produce una excepción cuando no es posible analizar un archivo.

Para obtener una lista de errores específicos de los módulos de Studio (clásico), consulte códigos de error Machine Learning.

Para obtener una lista de excepciones de API, consulte Machine Learning códigos de error de la API REST.

Consulte también

Import Data
Export Data
Importar desde una dirección web mediante HTTP
Importación desde Azure SQL Database
Importar desde una tabla de Azure
Importación desde Azure Blob Storage
Importar desde los proveedores de fuentes de distribución de datos
Importar desde la base de datos de SQL Server local