DataVec/过滤器

使用过滤器

 

过滤器是转换的一部份并为你保留你数据集的一部份给定了一个领域特定语言。过滤器可以是单一条件的一个内衬,也可以包括复杂的布尔逻辑。

TransformProcess tp = new TransformProcess.Builder(inputDataSchema)
    .filter(new ConditionFilter(new CategoricalColumnCondition("MerchantCountryCode", ConditionOp.NotInSet, new HashSet<>(Arrays.asList("USA","CAN")))))
    .build();

 

你也可以通过实现接Filter口来写自己的过滤器,尽管在更多的时候你想要创建一个定制的条件来替代。

 

可用的过滤器


ConditionFilter  条件过滤器

[源码]

如果条件满足返回true:移除实例或序列
如果条件不满足返回false:保留实例或序列

 

removeExample
public boolean removeExample(Object writables) 
  • 参数writables是实例
  • 如果实例应该被移除返回true,保留则返回false。
removeSequence
public boolean removeSequence(Object sequence) 
  • 参数sequence是序列实例
  • 如果实例应该被移除返回true,保留则返回false。
transform
public Schema transform(Schema inputSchema) 

 

给定一个输入概要,得到此转换的输出概要

  • 参数 inputSchema 
outputColumnName
public String outputColumnName() 

运算应用后的输出列名

  • 返回输出列名
columnName
public String columnName() 

输出列名,这通常与输入列名一样。

  • 返回输出列名

Filter

[源码]

过滤器: 按一些条件移除实例(或序列)


FilterInvalidValues 过滤无效值

[源码]

 

一个过滤操作,如果在任何一个指定的列集合中实例/序列包括无效的值,操作会移除任意的实例(或序列)。无效的值由概要决定。

 

transform
public Schema transform(Schema inputSchema) 
  • 参数 columnsToFilterIfInvalid 用于检查无效值的列
removeExample
public boolean removeExample(Object writables) 
  • 参数writables 是实例
  • 如果实例应该被移除返回true,保留则返回false。
removeSequence
public boolean removeSequence(Object sequence) 
  • 参数sequence是序列实例
  • 如果实例应该被移除返回true,保留则返回false。
outputColumnName
public String outputColumnName() 

运算应用后的输出列名

  • 返回这个输出列名
columnName
public String columnName()  

 

输出列名,这通常与输入列名一样。

  • 返回输出列名

InvalidNumColumns

[源码]

 

移除一定数量的无效列

 

removeExample
public boolean removeExample(Object writables) 
  • 参数writables 是实例
  • 如果实例应该被移除返回true,保留则返回false。

 

removeSequence
public boolean removeSequence(Object sequence) 
  • 参数sequence是序列实例
  • 如果实例应该被移除返回true,保留则返回false。

 

removeExample
public boolean removeExample(List<Writable> writables) 
  • 参数writables 是实例
  • 如果实例应该被移除返回true,保留则返回false。

 

 

removeSequence
public boolean removeSequence(List<List<Writable>> sequence) 
  • 参数sequence是序列实例
  • 如果实例应该被移除返回true,保留则返回false。

 

transform
public Schema transform(Schema inputSchema) 

给定一个输入概要,得到此转换的输出概要

  • 参数 inputSchema 
outputColumnName
public String outputColumnName() 

运算应用后的输出列名

  • 返回这个输出列名
columnName
public String columnName() 

输出列名,这通常与输入列名一样。

  • 返回输出列名

 有任何问题请联系微信 

如果您觉得我的文章给了您帮助,请为我买一杯饮料吧!以下是我的支付宝,意思一下我将非常感激!

     

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值