【发布时间】:2018-05-14 06:27:53
【问题描述】:
我正在从文件中读取 JSON 数据。
样本数据
{"name":"user1","myparam0":false,"myparam1":"44750004-23df-4960-88be-ba0884291597","myparam2":"36A3BF29-23df-EE2A-76B9-19BC1C854BA7","myparam3":"http://www.seloger.com/","myparam4":"http://www.seloger.com/erreur-temporaire/husk-pie","ver":"4.0.0"}
{"name":"user1","myparam0":true,"myparam1":"44750004-8bff-4960-88be-ba0884291597","myparam2":"36A3BF29-88be-EE2A-76B9-19BC1C854BA7","myparam3":"","myparam4":"http://www.seloger.com/erreur-temporaire/binde","ver":"4.0.0"}
我已经编写了一个示例代码来从文件中读取并将数据转换为这样的 JSON
DataStream<Object> input = env.readTextFile("file:///home/ravisankar/workspace/temporary/input.file")
.map((line) -> {
return JSON.parseFull(line);
});
现在我需要根据名称计算 15 秒内有多少 myparam3 为空。并按myparam4分组
Ex: {
"user1": {
"myparams3": 1,
"myparam4": {
"http://www.seloger.com/erreur-temporaire/binde": 1,
"http://www.seloger.com/erreur-temporaire/husk-pie": 1
}
}
}
是否可以从 Flink 中提取这样的数据?我没有看到任何使用 Java 处理 JSON 的示例。感谢您的宝贵时间
【问题讨论】:
标签: java json apache-flink flink-streaming