Я читаю файл S3, создавая внешнюю таблицу Spectrum и указывая ее на файл манифеста, который содержит информацию об исходном файле S3. Проблема в том, что размер моего файла S3 в десятичном виде, например, 37,5 МБ или 100,2 КБ.
Согласно документации, нам необходимо указать размер файла в байтах. Теперь, когда я использую множитель 1000 для преобразования в байты, я теряю некоторые записи или некоторые данные в конце файла во внешней таблице. Но когда я использую множитель 1024 для преобразования в байты, мой преобразованный размер файла будет в десятичном формате.
Предположим, у меня есть размер файла 100,2 КБ, поэтому в байтах это будет 102604,8 байта.
- Когда я указываю размер файла как 102604.8 в файле манифеста, я получаю сообщение об ошибке «Для записи файла не задана длина содержимого» * 1008 *
- Когда я предоставляю округленное значение для следующего целое число 102605, я получаю ошибку «Ошибка спектра»
- Когда я предоставляю округленное значение для предыдущего целого числа, 102604, я снова получаю ту же ошибку «Ошибка спектра»
My манифест выглядит так:
{
"entries": [
{"url":"s3://path/filename1.csv", "meta": { "content_length": 102605 } },
{"url":"s3://path/filename2.csv", "meta": { "content_length": 102605 } }
]
}
Кто-нибудь здесь сталкивался с таким сценарием и может поделиться своими входными данными.