java - 如何使 avro union 多种类型只显示一种类型(一种不为空)
问题描述
我有以下 avro 架构
{
"type" : "record",
"namespace" : "com.test.avro",
"name" : "MultiTypeObject",
"fields" : [
{
"name" : "id",
"type" : "int"
},
{
"name" : "value",
"type" : ["null", "double", "int", "boolean"],
"default" : null
}
]
}
但是,当我使用 AvroParquet 将数据写入 S3 并以 Json 格式查询时,我得到了这个
"myObject": {
"id": 1,
"value": {
"member2": null,
"member0": 24.439999999999998,
"member1": null
}
}
问题是我怎样才能让这个值字段只有一个值被打印出来,如下所示?
"myObject": {
"id": 1,
"value": 24.439999999999998
}
非常感谢。
解决方案
至少目前没有任何方法可以合并它们,这就是 avro 对联合数据类型的工作方式。
推荐阅读
- php - Laravel:如何在一个控制器中访问两种不同模型的数据?
- html - 使用最佳实践 angular 7 显示当前时间 - 小时和分钟
- mongodb - Symfony 4 表单上的文件限制不起作用
- python - Python:沿轴的向量化条件和
- javascript - String.fromCharCode 在浏览器和 nodejs 之间得到不同的结果
- actionscript-3 - as3、事件冒泡和捕获阶段
- reactjs - 当我不包含可选道具时,为什么会出现 Invariant Violation?
- kubernetes - kubectl 无法连接到集群;没有容器在运行
- python-3.x - tkinter.TclError:图像“pyimage2”不存在
- python - Google Cloud Stackdriver 忽略 Python 日志中的格式