Quiero hacer un escaneo hbase con filtros. Por ejemplo, mi tabla tiene las familias de columnas A, B, C y A tiene una columna X. Algunas filas tienen la columna X y otras no. ¿Cómo puedo implementar el filtro para filtrar todas las filas con la columna X?Cómo filtrar filas con una columna dada (no nulo)?
Respuesta
Supongo que está buscando SingleColumnValueFilter
en HBase. Como se mencionó en la API
Para evitar toda la fila de ser emitida si la columna no se encuentra en una fila, utilice
setFilterIfMissing(boolean)
en objeto de filtro. De lo contrario, si se encuentra la columna, toda la fila se emitirá solo si el valor pasa. Si el valor falla, la fila se filtrará.
Pero SingleColumnValueFilter
querría tener un valor de columna X "CompareOp" a algo, digamos llevar esta fila si Columnx == "X" o llevar esta fila si Columnx! = "Un valor centinela que puede Columnx nunca tome "y setFilterIfMissing(true)
para que si ColumnX tiene algún valor, se devuelva.
Espero que esto le empuje en la dirección correcta.
Puede usar un SkipFilter junto con ColumnPrefixFilter. El filtro ColumnPrefixFilter obtiene claves donde existe la columna (una fila HBase solo tendrá una columna si tiene un valor) el filtro Omitir le dará el "No" en el primer filtro para omitir la fila
Tenga en cuenta que esto solo pasará en las filas donde _todas las columnas de la fila pasan el filtro de prefijo –
Ankit Arnon user1573269
La única manera de que pudiera conseguir que funcione, es como a continuación
por lo tanto - tengo una tabla con columnas RULE1, rule2, RULE3 y así sucesivamente. Las filas pueden tener solo la columna rule1, o rule1 y rule2, o rule1 y rule2 y rule3, y así sucesivamente. Diga: quiero extraer las filas que tienen SOLAMENTE la regla1 en ellas. Ahora esto significa que tendré que saltear filas que tengan la regla2 en ellas.
Scan getRules = new Scan();
ColumnPrefixFilter rule1Filter = new ColumnPrefixFilter(Bytes.toBytes("rule1"));
SingleColumnValueFilter skipRule2Value = new SingleColumnValueFilter(Bytes.toBytes("rules"),Bytes.toBytes("rule2"),
CompareOp.EQUAL,Bytes.toBytes("0"));
SkipFilter skipRule2 = new SkipFilter(skipRule2Value);
getRules.setFilter(rule1Filter);
getRules.setFilter(skipRule2);
ResultScanner scanner = htable.getScanner(getRules);
Aunque esto funcionó, no estoy muy contento con la solución. Lleva tiempo que hbase se dé cuenta. Hubiera pensado que debería haber un método sencillo y directo que no tenga que verificar el valor. Arnon, tu método no funciona porque SkipFilter omitirá aquellos que DONOT no satisfacen la condición. Por lo tanto, construirlo desde un ColumnPrefixFilter falla el requisito.
- 1. Encontrar filas con una diferencia dada entre valores en una columna
- 2. Ordenar por nulo/nulo no con ICriteria
- 3. Cómo actualizar la columna con valor nulo
- 4. Filtrar filas del Cursor para que no aparezcan en ListView
- 5. Filtrar filas data.frame por una condición lógica
- 6. Filtrar una trama de datos por valores en una columna
- 7. cómo filtrar filas en un filtro complejo
- 8. ¿Cómo seleccionar una columna dada de una línea de texto?
- 9. Insertar filas en una tabla con una columna IDENTITY solamente
- 10. Excel - ¿Cómo utilizo una columna para "etiquetas" para filtrar el
- 11. SQL - "La columna no puede ser nulo"
- 12. Actualizar una columna, todas las filas
- 13. Filtrar tramas de datos de una sola columna
- 14. Agregando una columna cuyo valor no es nulo por defecto.
- 15. Seleccionar filas donde la columna es nula
- 16. MySQL: seleccionar filas donde una columna es nula
- 17. Oracle 10g - optimizar DONDE NO ES NULO
- 18. Dividir una columna en varias filas
- 19. SQL Insertar varias filas con una columna siempre la misma y una columna diferente
- 20. de consultas SQL - ¿Cómo filtro nulo o no nulo
- 21. actualizar una columna para todas las filas
- 22. ¿Cómo consultar una columna cuyo valor es nulo en JPA?
- 23. Agregar no nulo Columna en la tabla existente en SQL
- 24. Filtrar consultas SQL en la columna XML usando XPath/XQuery
- 25. Cómo filtrar numpy.ndarray por fecha?
- 26. Definición de columna SQL: valor predeterminado y no redundante nulo?
- 27. ¿establecer el valor nulo en una columna de clave externa?
- 28. Seleccione el valor de la columna si no es nulo else use otro valor de columna
- 29. Cómo filtrar filas con valores nulos en cualquiera de sus columnas en SSRS
- 30. Comparación MySQL con valor nulo
muchas gracias. ayudó mucho. upvoted – Sanket