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.

Contar el número de veces que ocurre un patrón de regex en Hive

Tengo una variable de cadena almacenada en hive de la siguiente manera:

stringvar
AA1,BB3,CD4
AA12,XJ5

Me gustaría contar (y filtrar) cuántas veces ocurre el patrón regex \w\w\d. En el ejemplo, en la primera fila hay obviamente tres ejemplos de ello. ¿Cómo puedo hacerlo sin recurrir a vistas laterales y explosiones de stringvar (demasiado caro)?

¡Gracias!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para contar y filtrar el patrón de expresión regular \w\w\d en la variable stringvar en Hive, puede utilizar la función regexp_count.

    Aquí hay un ejemplo de consulta:

    SELECT 
      stringvar, 
      regexp_count(stringvar, '\\w\\w\\d') AS pattern_count
    FROM 
      my_table
    WHERE 
      regexp_count(stringvar, '\\w\\w\\d') > 0;
    

    En esta consulta, se selecciona la columna stringvar de la tabla my_table y se usa la función regexp_count para contar el número de apariciones del patrón \w\w\d en la columna stringvar. También se filtran los resultados utilizando una cláusula WHERE para devolver solo las filas donde el patrón aparece al menos una vez.

    Tenga en cuenta que debemos escapar las barras invertidas en el patrón con dos barras invertidas (\\) porque las barras invertidas se utilizan como caracteres de escape en Hive.

Comments are closed.