我正在尝试(未在s3上创建实木复合地板蜂巢表)。

create external table sequencefile_s3
(user_id bigint,
creation_dt string
)
stored as sequencefile location 's3a://bucket/sequencefile';


序列文件运行完美。

create external table parquet_s3
(user_id bigint,
creation_dt string)
stored as parquet location 's3a://bucket/parquet';

insert into parquet_s3
select * from hdfs_data;


实木复合地板不起作用。
这些文件是在S3存储桶/文件夹上创建的,select count(*)有效,但是parquet_s3 limit 10中的select *不起作用。



其他说明我正在AWS或EC2外部运行cloudera 5.8。 S3a的配置正确(我可以通过distcp和s3 sequencefile和textfile外部表完美复制文件)。

最佳答案

首先,您不清楚自己的问题...
问题是什么?
另外,错误日志非常重要,运行时会得到什么输出以及什么命令?
我现在只能说的是,Hive具有自己的SEQUENCEFILE读取器和SEQUENCEFILE写入器库,用于通过序列文件进行读写。
它使用来自以下程序包的SEQUENCEFILE输入和输出格式:


org.apache.hadoop.mapred.SequenceFileInputFormat
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat


创建镶木表时,请使用下表属性语句,然后重试


tblproperties(“ parquet.compress” =“ SNAPPY”);

09-26 15:37