是否可以让Glue作业将JSON表重新分类为Parquet,而不需要另一个搜寻器来爬行Parquet文件?
当前设置:
我必须相信,有一种方法可以在没有其他搜寻器的情况下转换表分类(但是以前我已经被AWS烧死了)。任何帮助深表感谢!
答案 0 :(得分:1)
为了方便起见-最好使用2个搜寻器。
出于成本考虑-骇人听闻的解决方案应该是:
使用CREATE TABLE
命令从Athena获取json表的SHOW CREATE TABLE <json_table>;
DDL;
在CREATE TABLE
DDL中,将表名和SerDer从json替换为实木复合地板。除了CREATE TABLE
之外,您不需要原始LOCATION
DDL中的其他表属性。
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等)进行调度。