作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个非常简单的 avro 模式(很简单,因为我只是指出我当前的问题)来根据以 json 格式存储的数据编写一个 avro 数据文件。诀窍是一个字段是可选的,而 avrotools 或我之一没有做对。
目标不是编写我自己的序列化程序,最终目标是将其放入水槽中,我处于早期阶段。
名为 so.log 的文件中的数据(有效):
{
"valid": {"boolean":true}
, "source": {"bytes":"live"}
}
{
"type":"record",
"name":"Event",
"fields":[
{"name":"valid", "type": ["null", "boolean"],"default":null}
, {"name":"source","type": ["null", "bytes"],"default":null}
]
}
java -jar avro-tools-1.7.6.jar fromjson --schema-file so.avsc so.log
{
"valid": {"boolean":true}
}
Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-union. Got END_OBJECT
at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:697)
at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:441)
at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:229)
at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:206)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:155)
at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193)
at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142)
at org.apache.avro.tool.DataFileWriteTool.run(DataFileWriteTool.java:99)
at org.apache.avro.tool.Main.run(Main.java:84)
at org.apache.avro.tool.Main.main(Main.java:73)
最佳答案
根据documentation的Java API:
using a builder requires setting all fields, even if they are null
Since the field favorite_color has type ["string", "null"], we are not required to specify this field
关于flume - 生成具有可选值的 avro 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22939391/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!