0
私はこのようなハイブのテーブルを持っている:ハイブ、orcからparquetへのテーブルファイル形式の変更はサポートされていませんか?
CREATE TABLE `abtestmsg_orc`(
`eventname` string COMMENT 'AB测试方案上报事件:ABTest',
`eventtime` string COMMENT '事件上报时间',
`sessionid` string COMMENT 'Session标识',
`appkey` string COMMENT 'app标识',
`deviceid` string COMMENT 'device标识',
`content` string COMMENT 'AB测试方案的内容,格式是一个 json 字符串',
`item` array<struct<key:string,value:string>> COMMENT '扩展字段')
PARTITIONED BY (
`dt` string COMMENT '??')
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
'hdfs://hdfsmaster/hive/connector_transfer/abtestmsg_orc'
今、私は私がしようとfiles.So私の最初の寄木細工が含まれている他のHDFSディレクトリに場所を寄木細工して変更するORCからファイル形式を変更したいです書式を変更するには:
alter table abtestmsg_orc1 set fileformat parquet;
が、それはそれが例外をスローすることをピティーです:
はFAILED:実行エラー、
からの戻りコード1を0org.apache.hadoop.hive.ql.exec.DDLTask. Changing file format (from ORC) is not supported for table connector_transfer.abtestmsg_orc1
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Changing file format (from ORC) is not supported for table connector_transfer.abtestmsg_orc1 (state=08S01,code=1)
この例外は、私がfileformatを変更すると、テーブルのメタデータを変更するだけでなく、すべてのデータ形式をorcからparquetに変更しようとしていることを意味しています。
ALTER TABLE table_name [PARTITION partition_spec] SET FILEFORMAT file_format;
**This statement changes the table's (or partition's) file format. For available file_format options, see the section above on CREATE TABLE. The operation only changes the table metadata. Any conversion of existing data must be done outside of Hive.**
しかし、私が望むものは、その場所を寄木細工のディレクトリにすることです。
これを達成するにはどうすればよいですか?