jsonschema - 使用 nifi 将 JSON 转换为 Avro
问题描述
我正在尝试读取 RabbitMQ 队列并将数据传输到配置单元。
我的流程是这样的:ConsumeAMQP -> ConvertJSONToAvro -> PutHiveStreaming。
我在 ConvertJSONTOAvro 过程中遇到错误。
JSON:
{
"bn":"/27546/0","bt":48128.94568269015,"e":
[
{"n":"1000","sv":"8125333b8-5cae-4c8d-a5312-bbb215211dab"},
{"n":"1001","v":57.520565032958984},
{"n":"1002","v":22.45258230712891},
{"n":"1003","v":1331.0},
{"n":"1005","v":53.0},
{"n":"1011","v":50.0},
{"n":"5518","t":44119.703412761854},
{"n":"1023","v":0.0},
{"n":"1024","v":48128.94568269015},
{"n":"1025","v":7.0}
]
}
记录架构:
{
"type": "record",
"namespace": "nifi",
"fields": [{
"name": "bn",
"type": "string"
},
{
"name": "bt",
"type": "number"
},
{
"name": "e",
"type": "array",
"items": {
"type": "record",
"fields": [{
"name": "n",
"type": "string"
},
{
"name": "sv",
"type": "string"
},
{
"name": "v",
"type": "number"
},
{
"name": "t",
"type": "number"
}
]
}
}
]
}
错误
-–Record schema validated against '{"type":"record"...
我不知道出了什么问题。
解决方案
谢谢迈克,我添加了一个名字,但不起作用。
{
"name": "iot",
"type": "record",
"namespace": "nifi",
"fields": [{
"name": "bn",
"type": "string"
},
{
"name": "bt",
"type": "number"
},
{
"name": "e",
"type": "array",
"items": {
"type": "record",
"fields": [{
"name": "n",
"type": "string"
},
{
"name": "sv",
"type": "string"
},
{
"name": "v",
"type": "number"
},
{
"name": "t",
"type": "number"
}
]
}
}
]
}
推荐阅读
- python - 使用 Windows CMD 从下载的文件夹安装依赖项
- javascript - 如何在 reactstrap 中垂直而不是水平设置卡片样式
- google-contacts-api - 创建谷歌联系人而不复制他们
- laravel - 无法在 Plesk 服务器中使用 laravel smtp 发送邮件
- angular - 数字输入总是触发更改事件
- redis - Redis 从站没有响应数据
- c# - 如何优化代码以编写超过 140 万行的数据
- flutter - Flutter如何检测PageView onTapUp
- c# - 如何使用 C# 中的 HttpWebRequest 类将标头和正文中的值传递给 API 的 GET 响应?
- ibm-cloud - 如何使用 ibm cloud 快速转录长音频文件?