cyb*_*bis 6 ruby serialization avro
我正在尝试在 Ruby 中进行 avro 序列化。我已经编写了 JSON 模式,但是我喜欢将序列化数据作为 Ruby 中的字节而不是写入文件。
我的代码挂了类似的东西:
SCHEMA = {
"type": "record",
"name": "User",
"fields" :
[
{"name": "name", "type": "string"},
{"name": "id", "type": "long"},
{"name": "city", "type": "string"}
]
}.to_json
schema = Avro::Schema.parse(SCHEMA)
dw = Avro::IO::DatumWriter.new(schema)
buffer = StringIO.new
encoder = Avro::IO::BinaryEncoder.new(buffer)
???
Run Code Online (Sandbox Code Playgroud)
我有 name、id 和 city 的值,想知道如何创建 User 对象并将其序列化到字符串/字节缓冲区中。
我自己想通了:
schema = Avro::Schema.parse(SCHEMA)
dw = Avro::IO::DatumWriter.new(schema)
buffer = StringIO.new
encoder = Avro::IO::BinaryEncoder.new(buffer)
datum = Hash["name" =>name, "id" => id, "city" => city]
dw.write(datum, encoder)
Run Code Online (Sandbox Code Playgroud)
buffer 具有生成的 avro 序列化字节。
看起来 Ruby 中还没有 Avro 客户端代码生成功能。我们必须将数据作为 Ruby 哈希值传递,就像我在数据字段中所做的那样。
| 归档时间: |
|
| 查看次数: |
2606 次 |
| 最近记录: |