数据处理——实现数据过滤
实现spring batch中的ItemProcessor接口,并重写接口中的process方法来实现数据过滤。
示例:从一个list源中读取数据,只过滤出与”A”差值大于10的数据。
1、该作业配置如下:
import java.util.Arrays;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.support.ListItemReader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@EnableBatchProcessing
@Configuration
public class BatchConfig {@Autowiredprivate StepBuilderFactory stepBuilderFactory;@Autowiredprivate JobBuilderFactory jobBuilderFactory;@Value("${spring.batch.chunk.size:3}")private int chunkSize; //5/*1、创建一个Job作业*/@Beanpublic Job itemProcessJob(){return jobBuilderFactory.get("ItemProcessJob").start(chunkStep()).build();}//2、创建一个step*//*list源中存的数据都是String类型的,所以输入是String类型的;过滤出满足条件的数据转化为小写字符,也是String类型,所以输出也是String类型的*/@Beanpublic Step chunkStep(){return stepBuilderFactory.get("chunkStep").<String, String>chunk(chunkSize) //<String, String>表示输入是String类型,输出是String类型,不加会报错类型不匹配 .reader(listReader()).processor(itemProcess()).writer(list -> list.forEach(System.out::println)).allowStartIfComplete(true).build();}//读@Beanpublic ItemReader<String> listReader(){return new ListItemReader<>(Arrays.asList("A", "B", "C", "D", "E", "F", "G", "H", "I","J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T"));}//处理@Beanpublic ItemProcessor<String, String> itemProcess(){return new LowerCaseItemProcess();}/*处理程序中,输入的是String类型, 输出的是String类型*/private class LowerCaseItemProcess implements ItemProcessor<String, String>{@Override/*item表示输入的值*/public String process(String item) throws Exception {if (item.compareTo("A") <= 10) {return null; //返回空}String output = item.toLowerCase(); //把大写字母转化为小写字母return output; //返回非空结果}}}
运行作业,输出结果如下:
……省略日志
l
m
n
o
p
q
r
s
t
只过滤出了满足条件的数据。
2、如果读取的list数据源中数据改为如下:
//读@Beanpublic ItemReader<String> listReader(){return new ListItemReader<>(Arrays.asList("A", "B", "C", "D", "E", "F", "G", "H", "I","J", "K", "L", "M", "N", "O", "P", "Q", null, "R", "S", "T"));}
在"Q"字符的后面是个null,当spring batch读到此处时就会退出,表示读取完毕。Spring batch读取结束的条件就是null。
重新运行作业,输出日志如下:
……省略日志
l
m
n
o
p
q
数据处理——实现数据过滤相关推荐
- pandas 空数据处理和数据过滤
1.pandas数据过滤 import pandas as pd from pandas import DataFrame,Series import numpy as npdict1 = {'age ...
- 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )
文章目录 一.Bitmap 图像数据处理 二.Java 层 Bitmap 对象转为 JNI 层 bitmap 对象 三.获取 bitmap 中的图像数据 四.过滤 bitmap 中的图像数据 ( 获取 ...
- js数据过滤算法搭建
需求描述 公司需要搭建一个paas平台兼容所有的硬件,硬件把自己采集到的数据发送到paas平台,paas平台把数据处理之发送到各个服务.很多时候硬件发送的数据量特别大,很多不是我们需要的,这个时候,我 ...
- Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置
Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置 文章目录 Logstash数据处理服务的过滤插件GeoIP解析IP地址的地理位置 1.GeoIP解析IP地址的地理位置 2.安装 ...
- 3-03-1 泰坦尼克号竞赛 - 数据过滤
3.3 数据清洗与合并 数据预处理包含了数据清洗 (data cleansing) 与特征工程 (feature engineering) ,本节主要介绍的是数据清洗部份,主要目的是将原始数据转换成整 ...
- R行数据过滤基于dplyr包filter函数
R行数据过滤基于dplyr包filter函数 目录 R行数据过滤基于dplyr包filter函数 筛选等于某个值的行 使用与操作筛选行
- python与R行列数据过滤(row column filtering):dplyr、 isnull、isna、drop、select、iloc、loc、isin、filter
python与R行列数据过滤(row column filtering):dplyr. isnull.isna.drop.select.iloc.loc.isin.filter 很多工程师可能刚开始的 ...
- Pandas常见的数据过滤方法、通过列条件筛选行数据
Pandas常见的数据过滤方法.通过列条件筛选行数据 不废话了,直接看代码吧: 一般情况下,前面5种就覆盖了绝大多数需求 import pandas as pd import numpy as npd ...
- Aspose Cells 控件如何实现数据过滤(附代码和下载地址)
Aspose Cells 是一款操作和处理以及转换Excel文件的类库,支持.NET和JAVA版,几乎所有Excel能实现的功能,Aspose Cells都可以实现,在Excel中经常会用到数据过滤, ...
最新文章
- 念 2013-8-6 (写于爸爸走之后,之七)
- 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
- Spring4 MVC表单验证代码示例
- Jquery跳出each循环
- Android 不显示标题栏和全屏的设置方法
- python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例
- Python 获取服务器的CPU个数
- 关于SQL注入及防御
- 正确的座机号码格式_电话号码的正确写法(我就知道你不知道)
- Python int()使用小结
- 更新禅道踩坑问题及禅道更新步骤
- odoo服务器设置说明
- Docker Dockerfile 验证Docker内部使用jmap报错问题解决
- 【附源码】计算机毕业设计java在线教学系统设计与实现
- 电视android内置系统界面,系统界面:原生安卓 定制界面_汽车科技评测-中关村在线...
- 汶川大地震随感谢摘录
- 阿里云部署项目详细步骤
- 制作github.io学术版个人主页
- 在linux中,命令 nc -lk 和nc -lp 的区别是什么
- python爬虫程序员工资-Python爬虫实战-数据可视化