当前位置: 首页 > 知识库问答 >
问题:

如何在avro架构中合并一个联合类型的多个数据类型,以在value字段中显示一个数据类型,而不是member0member1

端木弘方
2023-03-14

我有以下avro模式

{
  "name": "MyClass",
  "type": "record",
  "namespace": "com.acme.avro",
  "fields": [
    {
      "name": "data",
      "type": 
        {
        "type": "map",
        "values": ["int","string"]
      }
    }
  ]
}

然而,当我通过kafka流式传输一些事件以与此模式产生火花时,流式数据帧将数据字段描述为一个结构,其成员具有模式中指定的DataType,如下图所示。

共有1个答案

匡旭东
2023-03-14

没有任何方法来合并它们,这就是avro为联合数据类型工作的方式。可能得忍受它。

 类似资料:
  • 是否可以重载一个字段类型成为另一个字段类型? 如果是,是否可以提供一些例子?

  • 我发现的大部分stackoverflow结果都是用于序列化整个对象或反序列化的。我的一些想法… 是否可以从三个值字段中删除@SerializedName并只序列化不为null的值? 我是否可以在java中构建某种可选的数据类型对象,该对象基于具有值的数据类型进行设置? 这个对象是一个更大的对象的一部分,而subitems对象有一个相当大的深度,它只是一个注释。我希望这是一个重复的问题,我只是找不到

  • 我有两种不同类型的Avro数据,它们有一些公共字段。我想在映射器中读取这些公共字段。我想通过在集群中生成单个作业来阅读本文。 下面是示例avro模式 模式1: {“type”:“record”,“name”:“Test”,“namespace”:“com.abc.schema.SchemaOne”,“doc”:“Avro使用MR.存储模式”,“fields”:[{“name”:“EE”,“type

  • 我有一个(相当复杂的)数据类型: 现在我发现自己需要另一个数据类型…有两个构造函数。一个与的相同;另一个只存储一个。我有什么选择? 虽然这会起作用,但它也允许类似这样的东西,这是没有意义的。

  • 我已经使用graphql-tools缝合了两个graphqlendpoint。对于一个endpoint模式,它工作得很好,但对于另一个模式,它抛出了这个错误“GraphQlError:field not found in type:'query_root'”。即使我可以在自省的时候看到所有的模式。

  • 我试图将中具有特定值的单元格更改为另一个值。但是,原始值是Double数据类型,我想更改为String数据类型。 我写了下面的代码来更改文本,但是我不知道为什么所有的值都不能匹配if语句条件。 以下是我的数据存储在文本文件中的方式: 我想把改成。 这是我的代码: