SerializableCoder 和 AvroCoder 有什么区别?
What is the difference between SerializableCoder and AvroCoder?
SerializableCoder 和 AvroCoder 之间有什么区别,我什么时候应该在自定义数据模型上使用它们?从文档页面来看,AvroCoder 似乎对模型模式更加严格,而 SerializableCoder 只需要模型来实现本质上是空的 Serializable 接口。 SerializableCoder 的文档确实警告不保证确定性编码。除此之外,在什么情况下会选择 AvroCoder 而不是 SerializableCoder?
主要区别在于 AvroCoder 使用 Avro Schemas,即,您将仅对 .avro 文件使用 AvroCoder。
使用 JSON 格式创建 Avro 模式,如下所示:
{
"type" : "record",
"name" : "userInfo",
"namespace" : "my.example",
"fields" : [{"name" : "username",
"type" : "string",
"default" : "NONE"},
{"name" : "age",
"type" : "int",
"default" : -1},
{"name" : "phone",
"type" : "string",
"default" : "NONE"},
{"name" : "housenum",
"type" : "string",
"default" : "NONE"},
{"name" : "street",
"type" : "string",
"default" : "NONE"},
{"name" : "city",
"type" : "string",
"default" : "NONE"},
{"name" : "state_province",
"type" : "string",
"default" : "NONE"},
{"name" : "country",
"type" : "string",
"default" : "NONE"},
{"name" : "zip",
"type" : "string",
"default" : "NONE"}]
}
另一方面,SerializableCoder 实现了 Java Serializable interface。这允许将 类 用于对象序列化,但没有特定的方法。
此外,非 java 应用程序可以读取 avro 模式。
SerializableCoder 和 AvroCoder 之间有什么区别,我什么时候应该在自定义数据模型上使用它们?从文档页面来看,AvroCoder 似乎对模型模式更加严格,而 SerializableCoder 只需要模型来实现本质上是空的 Serializable 接口。 SerializableCoder 的文档确实警告不保证确定性编码。除此之外,在什么情况下会选择 AvroCoder 而不是 SerializableCoder?
主要区别在于 AvroCoder 使用 Avro Schemas,即,您将仅对 .avro 文件使用 AvroCoder。
使用 JSON 格式创建 Avro 模式,如下所示:
{
"type" : "record",
"name" : "userInfo",
"namespace" : "my.example",
"fields" : [{"name" : "username",
"type" : "string",
"default" : "NONE"},
{"name" : "age",
"type" : "int",
"default" : -1},
{"name" : "phone",
"type" : "string",
"default" : "NONE"},
{"name" : "housenum",
"type" : "string",
"default" : "NONE"},
{"name" : "street",
"type" : "string",
"default" : "NONE"},
{"name" : "city",
"type" : "string",
"default" : "NONE"},
{"name" : "state_province",
"type" : "string",
"default" : "NONE"},
{"name" : "country",
"type" : "string",
"default" : "NONE"},
{"name" : "zip",
"type" : "string",
"default" : "NONE"}]
}
另一方面,SerializableCoder 实现了 Java Serializable interface。这允许将 类 用于对象序列化,但没有特定的方法。
此外,非 java 应用程序可以读取 avro 模式。