0

我有一个这样的原型文件:

syntax = "proto3";
option go_package="./messages";

enum MessageType {
    EventType = 0;
}

message Data {
     uint32 id = 1;
     MessageType event = 2;
     string website = 3;
     float value = 4;
}

这个 proto 文件生成一个带有 Data 结构的 go 文件:

type Data struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields

    Id              uint32      `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
    Event           MessageType `protobuf:"varint,2,opt,name=event,proto3,enum=MessageType" json:"event,omitempty"`
    Website         string      `protobuf:"bytes,3,opt,name=website,proto3" json:"website,omitempty"`
    Value           float32     `protobuf:"fixed32,4,opt,name=value,proto3" json:"value,omitempty"`
}

现在我想初始化一个新的镶木地板编写器:

writer.NewParquetWriter(fw, new (Data), Concurrency)

问题是我没有镶木地板标签,所以镶木地板作家失败了。

如何将生成的结构更改为带有镶木地板标签:

type Data struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields

    Id              uint32      `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty" parquet:"name=Id, type=INT32"`
    Event           MessageType `protobuf:"varint,2,opt,name=event,proto3,enum=MessageType" json:"event,omitempty"  parquet:"name=event, type=MessageType`
    Website         string      `protobuf:"bytes,3,opt,name=website,proto3" json:"website,omitempty" parquet:"name=website, type=BYTE_ARRAY, convertedtype=UTF8"`
    Value           float32     `protobuf:"fixed32,4,opt,name=value,proto3" json:"value,omitempty"  parquet:"name=value, type=FLOAT"`
}
4

0 回答 0