gpt4 book ai didi

mysql - 在 NiFi 中使用 ConvertRecord 处理 Null

转载 作者:行者123 更新时间:2023-12-02 00:57:42 24 4
gpt4 key购买 nike

是否可以使用 convertRecord 或其他处理器处理 null(列在 CSV 中不存在)?

我每天收到几个 CSv 文件。但问题是每个 CSv 中的字段都不相同,有没有一种方法可以将 CSV 中不存在的所有字段的 0 值发送到数据库中。如果是,请让我不如何?谢谢。

例如:CSV1 有以下字段:年龄、姓名、地址、值 1、值 2、值 3

(注意:Value3 并非每次都出现在所有 CSV 中,有时它存在,有时该列不存在)

CSV2 将具有以下内容:年龄、姓名、地址、值 1、值 2

而数据库中的表骨架如下:年龄、姓名、地址、值 1、值 2、值 3

我不想让空值后跟数据库中的某个值。在以自动方式插入数据库之前,我在 NiFi 中的流程是否可以处理“null”并用 0 替换它(每次如果 CSV 中不存在架构中给出的特定字段,流程应该将 0 分配给该字段并摄取数据库中的所有其他内容)

请帮我实现这个。谢谢!

最佳答案

对于这种情况,您必须在其中定义具有默认值的 avro 模式

示例 avro 架构:

{
"type": "record",
"name": "SQLSchema",
"fields" : [
{"name": "Age", "type": ["null","string"]},
{"name": "Name", "type": ["null","string"]},
{"name": "Address", "type": ["null","int"]},
{"name": "Value1", "type": ["null","int"]},
{"name": "Value2", "type": ["null","int"]},
{"name": "value3", "type": ["null","int"],"default": 0}
]
}

对于 value3 字段,我们将类型定义为 null (or) int 并将默认值定义为 0。

如果 value3 没有数据 字段,则会将值替换为 0

关于mysql - 在 NiFi 中使用 ConvertRecord 处理 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53163452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com