AWS Athena округляет числа при импорте файла CSV

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

Надеюсь, это вам тоже поможет:

var request = require('request');
var zlib = require('zlib');

var options = {
  url: 'http://some.endpoint.com/api/',
  headers: {
    'X-some-headers'  : 'Some headers',
    'Accept-Encoding' : 'gzip, deflate',
  },
  encoding: null
};

request.get(options, function (error, response, body) {

  if (!error && response.statusCode == 200) {
    // If response is gzip, unzip first
    var encoding = response.headers['content-encoding']
    if (encoding && encoding.indexOf('gzip') >= 0) {
      zlib.gunzip(body, function(err, dezipped) {
        var json_string = dezipped.toString('utf-8');
        var json = JSON.parse(json_string);
        // Process the json..
      });
    } else {
      // Response is not gzipped
    }
  }

});

0
задан dredbound 15 January 2019 в 22:02
поделиться

1 ответ

С некоторыми экспериментами я смог импортировать ваши данные , если я удалил кавычки из десятичного числа. Моя таблица создания выглядит следующим образом:

CREATE EXTERNAL TABLE IF NOT EXISTS athena_test.s3data (
  `test_job_id` decimal,
  `testrail_id` string 
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ','
) LOCATION 's3://the-bucket/athena/'
TBLPROPERTIES ('has_encrypted_data'='false');

, а данные выглядят так:

1547559017125, "@C665"
1547559017126, "@C666"
1547559017127, "@C667"

Если я попытался использовать org.apache.hadoop.hive.serde2.OpenCSVSerde в качестве формата строки, мне это не понравилось в любом случае, я гораздо менее знаком с этим.

Есть ли способ сгенерировать CSV без кавычек вокруг десятичного числа?

0
ответ дан stdunbar 15 January 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: