Colección de citas famosas - Consulta de diccionarios - Enseñarle cómo usar Hive para procesar datos de texto

Enseñarle cómo usar Hive para procesar datos de texto

Después de estudiar big data durante varios meses, ¡finalmente recibí el trabajo que me asignó mi jefe! Con la tecnología central en la mano, siento que caminar es mucho más ligero. Este requisito es realmente muy simple y claro.

Ahora el jefe necesita que haga una encuesta sobre las habilidades básicas de diferentes puestos en el mercado de contratación. Ahora probablemente tengamos algunos datos a mano. Los datos son algunos datos relacionados con la contratación. En los datos de la descripción del trabajo, como sugiere el nombre, todos los estudiantes que han buscado trabajo sabrán lo que significa la descripción del trabajo, especialmente aquellos de ustedes que no han estudiado big data. Es posible que hayan examinado innumerables oportunidades laborales. Todavía no he encontrado trabajo. Hoho, después de estudiar big data, pero encontré un trabajo de inmediato.

Una descripción de puesto es en realidad un párrafo que indica que este puesto requiere que los solicitantes tengan ciertas habilidades o destrezas para estar calificados para el puesto. Con estos datos, mi plan de investigación preliminar es el siguiente:

Analizar los datos en este campo de manera específica, extraer todas las palabras clave y luego según la posición correspondiente a cada dato, de acuerdo con Las posiciones se agrupan y cuentan, de modo que pueda obtener el número de apariciones de cada palabra clave correspondiente a cada posición y, por supuesto, las palabras clave que aparecen con más frecuencia son las palabras clave de habilidades principales de la posición. El plan era perfecto.

Ahora lo único en lo que puedo pensar es en cómo completar la tarea a la perfección, luego ser apreciado por el jefe, conseguir un ascenso y un aumento de salario y casarme con Bai Fumei. Pero todo está listo, sólo necesitamos el viento del este. Una pregunta muy importante es ¿cómo convertir un montón de texto (descripción del trabajo) en palabras individuales? Esto es lo que a menudo llamamos participios. Hoy presentaremos cómo completar esta tarea a la perfección. Es hora de cosas secas.

En primer lugar, utilizamos Hive para el procesamiento y análisis de datos en esta tarea. Al consultar el documento de Hive, descubrimos que las funciones integradas de Hive no pueden lograr la segmentación de palabras, pero Hive proporciona UDF para admitir el usuario. funciones definidas para lograr más funciones. El proceso de desarrollo de UDF se divide aproximadamente en (usando el lenguaje Java):

Cree un proyecto Maven para escribir UDF e importar dependencias de big data relevantes, las más importantes de las cuales son hive-exec y hadoop-common. Cree una clase y herede de la clase UDF, reescriba el método evaluar () en la clase y defina la lógica en el método para empaquetar el proyecto Maven, cargue el paquete jar en HDFS, agregue un método en Hive para asociar la clase UDF en el paquete jar, y luego puede usar este método para lograr la función deseada. Cabe señalar que, heredado de la clase UDF, la entrada del método evaluar () es un dato y la salida también es un dato. de datos. Puede imaginar que un fragmento de datos proviene de Hive y se devuelve después de la conversión. Un fragmento de datos convertidos, que es similar a nuestras funciones lower()/upper() de uso común. En Hive, existen otras formas de clases de funciones personalizadas, como UDAF y UDTF es una entrada de varias líneas que devuelve una fila, como la función agregada sum()/count(), y UDTF es una línea de entrada. que devuelve varias filas, como la función de explosión explotar(). Los estudiantes pueden buscar y aprender los detalles específicos por sí mismos.

Comencemos a escribir la UDF para la segmentación de palabras. El primer paso es importar las dependencias relevantes. Hay muchas bibliotecas que implementan la segmentación de palabras. Elegí el segmentador de palabras IK comúnmente usado en Java. la dependencia es ikanalyzer.

Después de eso, podemos definir palabras relacionadas en la lista negra y palabras preferidas, porque finalmente queremos obtener las palabras clave que queremos, por lo que es mejor eliminar algunas palabras inútiles, como "mi", una serie de palabras como "posición", "muy buena", etc. se almacenan en una lista negra, porque al final no queremos que las palabras clave derivadas sean palabras sin sentido. Por supuesto, las palabras preferidas también son necesarias, porque las herramientas de segmentación de palabras utilizan ciertos corpus y algoritmos para segmentar palabras. A veces algunas palabras se clasifican incorrectamente, como la palabra "aprendizaje automático". Se utilizan las palabras "máquina" y "aprendizaje", pero obviamente para la posición, esta es obviamente una palabra de habilidad, por lo que configuramos este tipo de nombre propio como palabra de preferencia para que el segmentador de palabras no lo clasifique la próxima vez que lo encuentre. estas palabras.

Coloque las palabras vacías en stopword.dic y las palabras de preferencia en extword.dic. Cada palabra puede ocupar una línea y luego configure las rutas de estos dos archivos en IKAnalyzer.cfg.xml. El segmentador de palabras IK cargará automáticamente nuestras palabras vacías y palabras de preferencia personalizadas.

A continuación, escriba la UDF de la clase principal.

El significado general de UDF es segmentar la cadena entrante. Después de la segmentación, cada palabra se empalma mediante el símbolo especial "\ 001" y finalmente se devuelve una cadena empalmada.

De acuerdo con los pasos de desarrollo de UDF, empaquete la UDF en un paquete jar y cárguelo en HDFS, y cree un método en Hive para asociar el paquete jar.

En resumen, todas las tareas se pueden completar usando HiveSQL en trece pasos. SQL no se explicará a todos aquí. Al final, obtuvimos los datos que queríamos de los datos originales.

A juzgar por los resultados de nuestro procesamiento y análisis de datos, las posiciones del algoritmo (job_tag) tienen una demanda considerable de tecnologías como las palabras clave (sub) "algoritmo", "c++" y "aprendizaje automático", porque en En la descripción del trabajo del algoritmo, la palabra "algoritmo" aparece 6366 veces, "c++" aparece 3706 veces y "aprendizaje automático" aparece 3385 veces, todas las cuales son las palabras clave con mayor frecuencia de aparición.

Eso es todo para compartir hoy. ¿Lo has aprendido?