Какой формат отметки времени для записи файла паркета в го - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь написать структуру Go в файле Parquet и загрузить ее на S3. Какой формат и тип указывать для параметра метки времени в структуре, чтобы athena отображала правильную метку времени при чтении из файла паркета.

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. который не где совпадает с текущей отметкой времени.

1 Ответ

0 голосов
/ 16 января 2019

Например,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...