Из соображений удобства - 2 сканера - это путь.
Из соображений стоимости - хакерское решение, которое может быть:
Получить таблицу json CREATE TABLE
DDL из Афины с помощью команды SHOW CREATE TABLE <json_table>;
;
В CREATE TABLE
DDL замените имя таблицы и SerDer от json до паркета.Вам не нужны другие свойства таблицы из исходного CREATE TABLE
DDL, кроме LOCATION
.
- Выполните новый
CREATE TABLE
DDL в Афине.
Дляпример:
SHOW CREATE TABLE json_table;
Оригинальный DDL:
CREATE EXTERNAL TABLE `json_table`(
`id` int COMMENT,
`name` string COMMENT)
ROW FORMAT SERDE
'org.openx.data.jsonserde.JsonSerDe'
...
LOCATION
's3://bucket_name/table_data'
...
Новый DDL:
CREATE EXTERNAL TABLE `parquet_table`(
`id` int COMMENT,
`name` string COMMENT)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
LOCATION
's3://bucket_name/table_data'
Вы также можете сделать это с помощью методов Glue api: get_table()> replace> create_table ().
Обратите внимание - если вы хотите запускать его периодически, вам нужно будет обернуть его в сценарий и запланировать его с другим планировщиком (crontab и т. д.) после запуска первого искателя.