Я сформулировал более полный ответ , пытаясь разыгрывать разные способы уничтожения и решая ошибки, связанные с кодированием.
Надеюсь, это вам тоже поможет:
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
}
}
});
С некоторыми экспериментами я смог импортировать ваши данные , если я удалил кавычки из десятичного числа. Моя таблица создания выглядит следующим образом:
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 без кавычек вокруг десятичного числа?