我想現有的蜂巢外部表分隔符從逗號,
改變ctrl+A
字符蜂巢改變SERDE性能我能看到的變化不使用蜂巢ALTER TABLE語句</p> <pre><code>ALTER TABLE table_name SET SERDEPROPERTIES ('field.delim' = 'u0001'); </code></pre> <p>的DDL後工作
show create table table_name
但是,當我從Hive中選擇時,這些值都是NULL(HDFS中的底層文件被更改爲具有ctrl + A分隔符)。
我也通過使用msck修復了表。
只有看到數據的方法是丟棄和重新創建外部表,任何人都可以請幫我理解原因。
表語法:
CREATE EXTERNAL TABLE `table_name`( col1, col2, col3) PARTITIONED BY ( `ing_year` int, `ing_month` int, `ing_day` int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 'hdfs://location/'
你是什麼意思「但是當我從** HDFS **中選擇的值都是NULL」?你不是指'Hive'還是'Impala'? – cheseaux
在HIVE中,Alter表正在更改分隔符,但無法正確選擇值。它返回null。 –
這也有助於看到您創建表 – cheseaux