结果输出时仅在最内层输出app_name

This commit is contained in:
qidaijie
2023-03-01 10:19:44 +08:00
parent b855062341
commit 338c03f6eb
4 changed files with 7 additions and 10 deletions

View File

@@ -18,6 +18,7 @@ import java.util.Map;
*/
public class ResultFlatMapFunction implements FlatMapFunction<String, String> {
private static String[] jobList = JsonParseUtil.getHierarchy();
private static final String APP_NAME = "app_name";
@Override
@SuppressWarnings("unchecked")
@@ -26,6 +27,8 @@ public class ResultFlatMapFunction implements FlatMapFunction<String, String> {
String name = jobList[0];
Map<String, Object> jsonObject = (Map<String, Object>) JsonMapper.fromJsonString(value, Map.class);
String protocol = JsonParseUtil.getString(jsonObject, name);
String appName = JsonParseUtil.getString(jsonObject, APP_NAME);
jsonObject.remove(APP_NAME);
if (StringUtil.isNotBlank(protocol)) {
String[] protocolIds = protocol.split(StreamAggregateConfig.PROTOCOL_SPLITTER);
for (String proto : protocolIds) {
@@ -35,6 +38,9 @@ public class ResultFlatMapFunction implements FlatMapFunction<String, String> {
out.collect(JsonMapper.toJsonString(jsonObject));
} else {
stringBuffer.append(jobList[1]).append(proto);
if (proto.equals(appName)) {
jsonObject.put(APP_NAME, appName);
}
jsonObject.put(name, stringBuffer.toString());
out.collect(JsonMapper.toJsonString(jsonObject));
}

View File

@@ -66,13 +66,6 @@ public class ParseMapFunction implements MapFunction<String, Tuple3<String, Stri
case "hierarchy":
String key = JsonParseUtil.getString(dimensionsObj, resultKeyName) + "@" + ThreadLocalRandom.current().nextInt(StreamAggregateConfig.RANDOM_RANGE_NUM);
return new Tuple3<>(key, JsonMapper.toJsonString(dimensionsObj), ParseFunctions.getMetricsLog(originalLog));
// case "dismantling":
// if (StringUtil.isNotBlank(parameters)) {
// if (logsValue != null) {
// JsonParseUtil.setValue(message, logsKeyName, ParseFunctions.dismantlingUtils(parameters, logsValue));
// }
// }
// break;
default:
break;
}

View File

@@ -59,7 +59,6 @@ public class FirstCountWindowFunction extends ProcessWindowFunction<Tuple3<Strin
if (!cacheMap.isEmpty()) {
for (String dimensions : cacheMap.keySet()) {
Map<String, Object> resultMap = cacheMap.get(dimensions);
System.out.println("resultMap"+resultMap.toString());
output.collect(new Tuple2<>(dimensions, JsonMapper.toJsonString(resultMap)));
}
}

View File

@@ -118,13 +118,12 @@ public class ParseFunctions {
/**
* 根据表达式解析json
* <p>
* // * @param message json
* //* @param message json
*
* @param expr 解析表达式
* @return 解析结果
*/
public static void flattenSpec(Map<String, Object> dimensions, String expr, String resultKeyName, String logsKeyValue) {
try {
if (StringUtil.isNotBlank(expr)) {
ArrayList<Object> read = JsonPath.parse(logsKeyValue).read(expr);