[英]Insert into a Hive table with a special character in the partition
我以這種方式創建了下表:
CREATE EXTERNAL TABLE `my_table`(
`user_id` string COMMENT '',
`this_date` string COMMENT '')
partitioned by (
`version` string COMMENT '')
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3://bucket/sub_bucket/sub_sub_bucket/table_folder'
TBLPROPERTIES (
'parquet.compression'='SNAPPY')
我想插入查詢:
insert into my_talbe values ('1', '2018-12-01', "2019-01-01 12:33:47.456890")
但它失敗了。
我在 Athena 上執行此查詢,所以錯誤並沒有說太多,但我確定:是問題所以我嘗試了以下
insert into my_talbe values ('1', '2018-12-01', "2019-01-01 12 33 47.456890")
它有效。
是否有一個我可以在分區文件夾中擁有:? 我需要它是在不使用 Athena (Hive) 的情況下創建的。
兩個插入語句似乎都缺少分區部分。
對於具有分區列和其他兩列的分區表tab1
,應插入數據,如下所示,
INSERT INTO tab1 partition ("abcdef") values (1, 2)
因此,提供的 INSERT 語句應該拋出這樣的錯誤
Error while compiling statement: FAILED: SemanticException 1:12 Need to specify partition columns because the destination table is partitioned. Error encountered near token 'my_table'
此外,回答您的原始問題 - 在 Hadoop 中,您無法創建名稱中包含/
或:
字符的文件或目錄。
所以創建分區的更好方法是從名稱中排除這些字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.