Uso práctico de rlike regular en Hive
Requisitos del proyecto: determinar si el valor de la etiqueta se ajusta a una determinada regla regular y filtrarlo si no es así.
Por ejemplo: el valor de la etiqueta es: tipo de texto, que debe coincidir con el texto reglas regulares número de teléfono móvil Tipo: coincidencia regular tipo personalizado: coincidencia según la situación real;
rlike(a.tag_value, a.check_rule)=false;
Nota: a.check_rule debe ser una expresión regular, no un nombre de campo. Pero si desea obtener la expresión regular del valor del campo en la tabla de la colmena, ¿a qué debe prestar atención? Obtener expresiones regulares a partir de valores de campo puede verificar diferentes valores de etiquetas de manera más flexible.
Las expresiones regulares de Java también se pueden usar en Hive, pero es necesario escaparlas. Por lo tanto, hay detalles que necesitan atención especial aquí, es decir, si los caracteres especiales deben escaparse con una sola barra o una doble. slash. Nadie en toda la red puede decir que entiendo este problema, la expresión regular rlike es incorrecta y Hive no informa ningún error. Después de practicar, saqué las siguientes conclusiones:
1.a. .check_rule se escribe directamente en una cadena aquí y se escapa con barras dobles;
2.a.check_rule Si la expresión regular aquí se obtiene de la tabla de la colmena, se escapa con una sola barra cuando la colmena; Al traducir la expresión SQL, se puede ver claramente: los escapes de barra inclinada en la tabla de la colmena se convertirán automáticamente en barras diagonales dobles para hacer coincidir, es decir, los escapes de barra inclinada en la tabla de la colmena se convertirán en barras diagonales dobles cuando se extraigan. prestar atención.