Таблица спектра. Файл манифеста, если размер файла S3 указан в десятичном формате. - PullRequest
0 голосов
/ 16 апреля 2020

Я читаю файл S3, создавая внешнюю таблицу Spectrum и указывая ее на файл манифеста, который содержит информацию об исходном файле S3. Проблема в том, что размер моего файла S3 в десятичном виде, например, 37,5 МБ или 100,2 КБ.

Согласно документации, нам необходимо указать размер файла в байтах. Теперь, когда я использую множитель 1000 для преобразования в байты, я теряю некоторые записи или некоторые данные в конце файла во внешней таблице. Но когда я использую множитель 1024 для преобразования в байты, мой преобразованный размер файла будет в десятичном формате.

Предположим, у меня есть размер файла 100,2 КБ, поэтому в байтах это будет 102604,8 байта.

  1. Когда я указываю размер файла как 102604.8 в файле манифеста, я получаю сообщение об ошибке «Для записи файла не задана длина содержимого» * ​​1008 *
  2. Когда я предоставляю округленное значение для следующего целое число 102605, я получаю ошибку «Ошибка спектра»
  3. Когда я предоставляю округленное значение для предыдущего целого числа, 102604, я снова получаю ту же ошибку «Ошибка спектра»

My манифест выглядит так:

{

  "entries": [

    {"url":"s3://path/filename1.csv", "meta": { "content_length": 102605 } },

    {"url":"s3://path/filename2.csv", "meta": { "content_length": 102605 } }

  ]

}

Кто-нибудь здесь сталкивался с таким сценарием и может поделиться своими входными данными.

...