UrlQueryFilter.ValueFilter-鸿蒙OS-树叶云鸿蒙OS教程 (url缺失是什么意思)

教程大全 2025-07-12 05:12:31 浏览

表示用于过滤掉查询字符串中的无效字符并将其替换为空格或下划线 (_) 的过滤器。 过滤策略使用 int 值来控制过滤。 int 值的每一位代表是否会过滤掉字符串中的某个字符。 如果某个位的值为 1,则该字符有效。 如果值为0,则该字符无效,将被过滤掉。


UrlQueryFilter.ValueFilter

索尼爱立信哪一款比较好???

看你是否对像素有要求没,滑盖新款995 800万像素售价3000左右有红 黑 银色支持wifi

X1也是今年上市的 目前来说是唯一一款可以侧滑 触摸的 智能手机500万像素 支持wifi

怎样在centos安装wireshark

一、安装 以root用户运行:yum install wireshark二、运行 在终端中键入命令:#wireshark bash:wireshark:command not found #whereis wireshark wireshark: /usr/lib/wireshark /usr/share/wireshark #cd /usr/lib/wireshark #ls plugins #cd /usr/share/wireshark; ls _ diametermanuftpncp

HBase如何用过滤器实现项目某个求总数量的统计

HBase为筛选数据提供了一组过滤器,通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。 通常来说,通过行键,值来筛选数据的应用场景较多。 1. RowFilter:筛选出匹配的所有的行,对于这个过滤器的应用场景,是非常e799bee5baa6ee5aeb3537直观的:使用BinaryComparator可以筛选出具有某个行键的行,或者通过改变比较运算符(下面的例子中是)来筛选出符合某一条件的多条数据,以下就是筛选出行键为row1的一行数据:[Java] view plaincopyFilter rf = new RowFilter(, new BinaryComparator((row1))); // OK 筛选出匹配的所有的行2. PrefixFilter:筛选出具有特定前缀的行键的数据。 这个过滤器所实现的功能其实也可以由RowFilter结合RegexComparator来实现,不过这里提供了一种简便的使用方法,以下过滤器就是筛选出行键以row为前缀的所有的行:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter pf = new PrefixFilter((row)); // OK筛选匹配行键的前缀成功的行3. KeyOnlyFilter:这个过滤器唯一的功能就是只返回每行的行键,值全部为空,这对于只关注于行键的应用场景来说非常合适,这样忽略掉其值就可以减少传递到客户端的数据量,能起到一定的优化作用:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter kof = new KeyOnlyFilter(); // OK 返回所有的行,但值全是空4. RandomRowFilter:从名字上就可以看出其大概的用法,本过滤器的作用就是按照一定的几率(<=0会过滤掉所有的行,>=1会包含所有的行)来返回随机的结果集,对于同样的数据集,多次使用同一个RandomRowFilter会返回不通的结果集,对于需要随机抽取一部分数据的应用场景,可以使用此过滤器:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter rrf = new RandomRowFilter((float) 0.8); // OK 随机选出一部分的行5. InclusiveStopFilter:扫描的时候,我们可以设置一个开始行键和一个终止行键,默认情况下,这个行键的返回是前闭后开区间,即包含起始行,单不包含中指行,如果我们想要同时包含起始行和终止行,那么我们可以使用此过滤器:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter isf = new InclusiveStopFilter((row1)); // OK 包含了扫描的上限在结果之内6. FirstKeyOnlyFilter:如果你只想返回的结果集中只包含第一列的数据,那么这个过滤器能够满足你的要求。 它在找到每行的第一列之后会停止扫描,从而使扫描的性能也得到了一定的提升:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter fkof = new FirstKeyOnlyFilter(); // OK 筛选出第一个每个第一个单元格7. ColumnPrefixFilter:顾名思义,它是按照列名的前缀来筛选单元格的,如果我们想要对返回的列的前缀加以限制的话,可以使用这个过滤器:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter cpf = new ColumnPrefixFilter((qual1)); // OK 筛选出前缀匹配的列8. ValueFilter:按照具体的值来筛选单元格的过滤器,这会把一行中值不能满足的单元格过滤掉,如下面的构造器,对于每一行的一个列,如果其对应的值不包含ROW2_QUAL1,那么这个列就不会返回给客户端:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter vf = new ValueFilter(, new SubstringComparator(ROW2_QUAL1)); // OK 筛选某个(值的条件满足的)特定的单元格9. ColumnCountGetFilter:这个过滤器来返回每行最多返回多少列,并在遇到一行的列数超过我们所设置的限制值的时候,结束扫描操作:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter ccf = new ColumnCountGetFilter(2); // OK 如果突然发现一行中的列数超过设定的最大值时,整个扫描操作会停止10. SingleColumnValueFilter:用一列的值决定这一行的数据是否被过滤。 在它的具体对象上,可以调用setFilterIfMissing(true)或者setFilterIfMissing(false),默认的值是false,其作用是,对于咱们要使用作为条件的列,如果这一列本身就不存在,那么如果为true,这样的行将会被过滤掉,如果为false,这样的行会包含在结果集中。 [java] view plaincopy在CODE上查看代码片派生到我的代码片SingleColumnValueFilter scvf = new SingleColumnValueFilter((colfam1), (qual2), _EQUAL, new SubstringComparator(BOGUS));(false);(true); // OK11. SingleColumnValueExcluDeFilter:这个与10种的过滤器唯一的区别就是,作为筛选条件的列的不会包含在返回的结果中。 12. SkipFilter:这是一种附加过滤器,其与ValueFilter结合使用,如果发现一行中的某一列不符合条件,那么整行就会被过滤掉:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter skf = new SkipFilter(vf); // OK 发现某一行中的一列需要过滤时,整个行就会被过滤掉13. WhileMatchFilter:这个过滤器的应用场景也很简单,如果你想要在遇到某种条件数据之前的数据时,就可以使用这个过滤器;当遇到不符合设定条件的数据的时候,整个扫描也就结束了:[java] view plaincopy在CODE上查看代码片派生到我的代码片Filter wmf = new WhileMatchFilter(rf); // OK 类似于Python itertools中的takewhile14. FilterList:用于综合使用多个过滤器。 其有两种关系_PASS_ONE和_PASS_ALL,默认的是_PASS_ALL,顾名思义,它们分别是AND和OR的关系,并且FilterList可以嵌套使用FilterList,使我们能够表达更多的需求:[java] view plaincopy在CODE上查看代码片派生到我的代码片List filters = new ArrayList();(rf);(vf);FilterList fl = new FilterList(_PASS_ALL, filters); // OK 综合使用多个过滤器, AND 和 OR 两种关系以上,是对于HBase内置的过滤器的部分总结,以下代码是数据写入代码:[java] view plaincopy在CODE上查看代码片派生到我的代码片package ;import ;import ;import ;import ;import ;import ;public class HBaseDataFeeding {private final static byte[] ROW1 = (row1);private final static byte[] ROW2 = (row2);private final static byte[] COLFAM1 = (colfam1);private final static byte[] COLFAM2 = (colfam2);private final static byte[] QUAL1 = (qual1);private final static byte[] QUAL2 = (qual2);public static void main(String[] args) throws IOException {Configuration conf = ();HTable table = new HTable(conf, testtable);(false);Put put_row1 = new Put(ROW1);put_(COLFAM1, QUAL1, (ROW1_QUAL1_VAL));put_(COLFAM1, QUAL2, (ROW1_QUAL2_VAL));Put put_row2 = new Put(ROW2);put_(COLFAM1, QUAL1, (ROW2_QUAL1_VAL));put_(COLFAM1, QUAL2, (ROW2_QUAL2_VAL));try{(put_row1);(put_row2);}finally{();}}}以下是过滤器测试代码,可以通过修改代码,更换过滤器来看到具体的效果:[java] view plaincopy在CODE上查看代码片派生到我的代码片package ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;public class HBasescannerTest {public static void main(String[] args) throws IOException, IllegalAccessException {Configuration conf = ();HTable table = new HTable(conf, testtable);(false);Scan scan1 = new Scan();SingleColumnValueFilter scvf = new SingleColumnValueFilter((colfam1), (qual2), _EQUAL, new SubstringComparator(BOGUS));(false);(true); // OKFilter ccf = new ColumnCountGetFilter(2); // OK 如果突然发现一行中的列数超过设定的最大值时,整个扫描操作会停止Filter vf = new ValueFilter(, new SubstringComparator(ROW2_QUAL1)); // OK 筛选某个(值的条件满足的)特定的单元格Filter cpf = new ColumnPrefixFilter((qual2)); // OK 筛选出前缀匹配的列Filter fkof = new FirstKeyOnlyFilter(); // OK 筛选出第一个每个第一个单元格Filter isf = new InclusiveStopFilter((row1)); // OK 包含了扫描的上限在结果之内Filter rrf = new RandomRowFilter((float) 0.8); // OK 随机选出一部分的行Filter kof = new KeyOnlyFilter(); // OK 返回所有的行,但值全是空Filter pf = new PrefixFilter((row)); // OK筛选匹配行键的前缀成功的行Filter rf = new RowFilter(_EQUAL, new BinaryComparator((row1))); // OK 筛选出匹配的所有的行Filter wmf = new WhileMatchFilter(rf); // OK 类似于Python itertools中的takewhileFilter skf = new SkipFilter(vf); // OK 发现某一行中的一列需要过滤时,整个行就会被过滤掉List filters = new ArrayList();(rf);(vf);FilterList fl = new FilterList(_PASS_ALL, filters); // OK 综合使用多个过滤器, AND 和 OR 两种关系((row1))((row3))(scvf); ResultScanner scanner1 = (scan1);for(Result res : scanner1){for(Cell cell : ()){(KV: + cell + , Value: + ((cell)));}(------------------------------------------------------------);}();();}

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐