如何使用flink制作Map [String,Any]流

时间:2018-05-17 13:33:59

标签: json scala apache-flink flink-streaming flink-cep

让我们假设我们有这个json

{
  "Account Informations": {
    "User Info": {
      "User Name": "Albert Goldstein",
      "Date": "03/27/2015 08:35:11",
      "Location": "New York, USA"
    },
    "User": {
      "Email": "FlinkIsDifficult@gmail.com",
      "Password": "*******"
    }
  }
}

作为DataStream我想获得另一个包含

的JSON
{
        "User": {
          "Email": "FlinkIsDifficult@gmail.com",
          "Password": "*******"
        }
}

还有什么办法按字段解析文档?比如get(" Email")然后返回" FlinkIsDifficult@gmail.com" ??

谢谢:)

1 个答案:

答案 0 :(得分:0)

您可以像在任何其他Java或Scala程序中一样使用JSON。有关在Java中执行此操作的帮助,请参阅this question的答案。然后,您可以在Flink map()或flatmap()函数中应用您选择的任何方法来进行转换。

如果您的JSON来自Kafka,您可能宁愿使用KafkaJsonTableSource