在跑数据时碰到,某个字段的值需要过滤,范围是大概几万个值,就不能直接用枚举了,需要将数据存到一个临时表 然后去读这个表
先建临时表
CREATE EXTERNAL TABLE XXXX(
XX string COMMENT 'XX'
) COMMENT ''
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS parquet
LOCATION
'XXXXX'
TBLPROPERTIES (
'parquet.compress'='SNAPPY');
然后将excel文件拉到个人目录下,load data:
load data local inpath 'XXXX' overwrite into table XXXX
结果查询报错了,hive is not a Parquet file. 。。。。。。。
原因是表数据存储格式不能为parquet,因为传入的不是parquet文件
修改建表语句为
CREATE EXTERNAL TABLE XXXX(
XX string COMMENT 'XX'
) COMMENT ''
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS textfile
LOCATION
'XXXXX'
TBLPROPERTIES (
'parquet.compress'='SNAPPY');
然后再次load data,但这次查询又出现乱码,将excel 换成txt文件,重新load data 刷新表
这次ok了