записать файл паркета из файла protobuf в golang
У меня есть такой прото-файл:
syntax = "proto3";
option go_package="./messages";
enum MessageType {
EventType = 0;
}
message Data {
uint32 id = 1;
MessageType event = 2;
string website = 3;
float value = 4;
}
Этот прото-файл генерирует файл 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"`
}