我正在尝试在Parquet文件中编写Go结构并将其上传到S3。我为结构中的timestamp参数指定什么格式和类型,以便雅典娜在从实木复合地板文件中读取时显示正确的时间戳。
type example struct {
ID int64 `parquet:"name=id, type=INT64"`
CreatedAt int64 `parquet:"name=created_at,type=TIMESTAMP_MILLIS"`
}
ex := example{}
ex.ID = int64(10)
ex.CreatedAt = time.Now().Unix()
fw, err := ParquetFile.NewLocalFileWriter("new.parquet")
pw, err := ParquetWriter.NewParquetWriter(fw, new(example), 1)
pw.Write(ex)
Upload the file new.parquet to S3
参考-https://github.com/xitongsys/parquet-go。我在雅典娜创建了一个具有int和timestamp字段的表,并尝试查询该表。日期显示为-1970-01-18 21:54:23.751。 没有哪个与当前时间戳匹配。
答案 0 :(得分:1)
例如,
package main
import (
"fmt"
"time"
)
func main() {
type example struct {
CreatedAt int64 `parquet:"name=created_at,type=TIMESTAMP_MILLIS"`
}
ex := example{}
ex.CreatedAt = time.Now().UnixNano() / int64(time.Millisecond)
fmt.Println(ex.CreatedAt)
}
游乐场:https://play.golang.org/p/ePOlUKiT6fD
输出:
1257894000000