map算子
代码来源于尚硅谷课程的资料
1.使用::符号
//将每行数据转换为json对象
SingleOutputStreamOperator<JSONObject> jsonObjDs = kafkaDs.map (JSON::parseObject);
2.使用Lambda表达式
//TODO 3.将每行数据转换为JavaBean对象
SingleOutputStreamOperator<UserRegisterBean> userRegisterDs = kafkaDS.map (line -> {
JSONObject jsonObject = JSON.parseObject (line);
String createTime = jsonObject.getString ("create_time");
return new UserRegisterBean ("", "", 1L, DateFromatUtil.toTs (createTime, true));
});
3.使用富函数类,其中open方法是初始化方法,当算子map方法被调用之前,open()首先会被调用。
// TODO 5.使用状态编程做新老访客标记校验
SingleOutputStreamOperator<JSONObject> jsonObjWithNewFlagDS = keyedStream.map (new RichMapFunction<JSONObject, JSONObject> () {
private ValueState<String> lastVisitState;
@Override
public void open(Configuration parameters) throws Exception {
lastVisitState = getRuntimeContext ().getState (new ValueStateDescriptor<String> ("last-visit", String.class));