Go преобразование данных в паркет - PullRequest
0 голосов
/ 28 апреля 2020

Я получаю данные из DynamodB и преобразую данные в файлы паркета.

Для преобразования в файлы паркета я использую библиотеку https://github.com/xitongsys/parquet-go. Но по какой-то причине я получаю runtime error: invalid memory address or nil pointer dereference

Я знаю, что эта ошибка означает, что указатель равен нулю, и я пытаюсь использовать его или разыменовать его.

Не знаю, почему pw.WriteStop () выдает недопустимую ошибку памяти

код:

fw, err := local.NewLocalFileWriter(parquetFile)
if err != nil {
    log.Errorf("local.NewLocalFileWriter() error - %s", err)
    return err
}

pw, err := writer.NewParquetWriter(fw, new(Struct), int64(len(tenantList)))
if err != nil {
    log.Errorf("writer.NewParquetWriter() error - %s", err)
    return err
}

pw.RowGroupSize = 128 * 1024 * 1024 //128M
pw.CompressionType = parquet.CompressionCodec_SNAPPY

for _, data := range tenantList {
    if err = pw.Write(data); err != nil {
        return err
    }
}

// this line gives memory invalid error
if err = pw.WriteStop(); err != nil {
    return err
}

fw.Close()

Единственная ошибка, которую я получаю, это «ошибка времени выполнения: недопустимая память» разыменование адреса или нулевого указателя ". Распечатав операторы в операторах «если», я обнаружил, что неверный адрес памяти исходит от «pw.WriteStop ()»

Прикрепление снимка экрана с ошибкой; просто чтобы показать, что я действительно получаю только «ошибка времени выполнения: неверный адрес памяти или разыменование нулевого указателя»

runtime error

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...