내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
암호:
package main
import (
"github.com/xitongsys/parquet-go-source/local"
"github.com/xitongsys/parquet-go/writer"
"log"
)
func main() {
var err error
md := []string{
"name=Name, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN",
"name=address, type=LIST, valuetype=BYTE_ARRAY, valueconvertedtype=UTF8",
}
//write
fw, err := local.NewLocalFileWriter("csv.parquet")
if err != nil {
log.Println("Can't open file", err)
return
}
pw, err := writer.NewCSVWriter(md, fw, 4)
if err != nil {
log.Println("Can't create csv writer", err)
return
}
num := 10
for i := 0; i < num; i++ {
data2 := []interface{}{
"Student Name",
[]string{"string1", "string2", "string3"},
}
if err = pw.Write(data2); err != nil {
log.Println("Write error", err)
}
}
if err = pw.WriteStop(); err != nil {
log.Println("WriteStop error", err)
}
log.Println("Write Finished")
fw.Close()
}
이 코드를 실행하면 오류가 발생합니다.
pw, err := writer.NewCSVWriter(md, fw, 4)
오류는 다음과 같이 보고됩니다.
failed to create schema from tag map: type LIST: not a valid Type string
원인을 분석한 결과 CSVWriter는 LIST를 지원하지 않습니다.
구체적인 오류 보고서는 다음과 같습니다.
if t, err := parquet.TypeFromString(info.Type); err == nil {
schema.Type = &t
} else {
return nil, fmt.Errorf("type " + info.Type + ": " + err.Error())
}
parquet.TypeFromString()을 입력하세요.
func TypeFromString(s string) (Type, error) {
switch s {
case "BOOLEAN":
return Type_BOOLEAN, nil
case "INT32":
return Type_INT32, nil
case "INT64":
return Type_INT64, nil
case "INT96":
return Type_INT96, nil
case "FLOAT":
return Type_FLOAT, nil
case "DOUBLE":
return Type_DOUBLE, nil
case "BYTE_ARRAY":
return Type_BYTE_ARRAY, nil
case "FIXED_LEN_BYTE_ARRAY":
return Type_FIXED_LEN_BYTE_ARRAY, nil
}
return Type(0), fmt.Errorf("not a valid Type string")
}
여기에는 LIST나 MAP이 없다는 것을 알 수 있습니다. 위의 유형만 지원됩니다.