我有一个简单的avro模式,如下所示:
{
"type": "record",
"name": "transaction",
"namespace": "com.mycompany",
"doc": "Transaction records",
"fields": [
{
"name": "version",
"type": "int",
"default": 1,
"doc": "version the class"
},
{
"name": "eventType",
"type": "string",
"default": "saleTransaction",
"doc": "event type"
},
{
"name": "writeTimestamp",
"type": "org.joda.time.DateTime",
"doc": "Timestamp when this event was written to the stream"
},
{
"name": "originatingClient",
"type": "string",
"doc": "identifier of the originating client"
}
}
当我使用avro-maven-plugin编译它时,我得到以下错误:
错误]执行目标失败
目标组织的执行事务模式。阿帕奇。avro:avro maven插件:1.8.0:schema失败:“org.joda.time.DateTime”不是定义的名称。“writeTimestamp”字段的类型必须是定义的名称或{“类型”:…}表情-
我怎样才能让它工作?
Avro目前没有日期支持,您必须将时间存储为长时间。并且不支持自定义类型,因为这意味着支持该类型的avro序列化和反序列化。
我有这样的代码 现在,为了打印值,如果T是一个类,我想调用对象的打印函数,但是如果T是一个基本数据类型,我只想使用printf。 那么,如何确定模板类型是基本数据类型还是类?
我正在尝试使用以下方法在运行时获取Avro模式: 但由于我的POJO类包含以下泛型: 我得到以下例外情况: 我知道Avro不会支持泛型类型。是否有一种方法可以在运行时生成架构时从类中省略某些类字段?
问题内容: 我正在用Java编写一个Kafka流应用程序,该应用程序将接受由连接器创建的输入主题,该连接器将模式注册表和avro用于键和值转换器。连接器产生以下架构: 实际上,有几个主题,键模式始终是“ int”,而值模式始终是某种记录(用户,产品等)。我的代码包含以下定义 最初,我尝试使用类似的内容来使用该主题, Consumed.with(Serdes.Integer(), userSerde
如何在我的Apple类中生成BigDecimal?现在我只有一个字节缓冲符。。。。 使用Avro模式(avsc): 使用IDL: 使用maven生成方法mvn clean compile和以下maven代码段: 这两种方法都返回了这个丑陋的方法,显然几乎无法使用。。。 如何使此方法请求BigDecimal?这是使用Avro
如何将此迭代器与泛型类型一起使用?以下是我在“main”函数中尝试的方法: 结果是:<代码>无法从静态上下文引用非静态类项 结果是:<代码>无法从静态上下文引用非静态类项 结果: 编辑: 我调用的是类而不是方法。这项工作: 迭代器it=deq。迭代器(); 我认为,由于iterator()中返回的实例的类型是ListIterator,因此我需要使用该类型声明“it”。
我想在Kotlin中为具有不可变属性的类型使用类型安全生成器。 我想到了两种解决方案: 选项 1:创建生成器类: 选项2:创建自定义委托以防止再次设置该值: 选项1的缺点是我必须维护两个类,选项2的缺点是编译器将允许再次设置< code>DataClass中的值,并且检查将只在运行时进行。 有没有更好的方法来解决这个问题而没有提到的缺点?