創建HIVE表我想創建一個多串字符HIVE表作爲分隔符如多字符分隔符
CREATE EXTERNAL TABlE tableex(id INT, name STRING)
ROW FORMAT delimited fields terminated by ','
LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/user/myusername';
我想有分隔成多串像「〜*」。
創建HIVE表我想創建一個多串字符HIVE表作爲分隔符如多字符分隔符
CREATE EXTERNAL TABlE tableex(id INT, name STRING)
ROW FORMAT delimited fields terminated by ','
LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/user/myusername';
我想有分隔成多串像「〜*」。
FILELDS TERMINATED BY
不支持多字符分隔符。要做到這一點,最簡單的方法是使用RegexSerDe
:
CREATE EXTERNAL TABlE tableex(id INT, name STRING)
ROW FORMAT 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "^(\\d+)~\\*(.*)$"
)
STORED AS TEXTFILE
LOCATION '/user/myusername';
感謝Hari,我知道SerDe。但SerDe的問題是我無法在SSMS上使用Hive Tables創建鏈接服務器連接。你是如何解決這個問題的? –
我還沒有在SSMS上工作,所以我不能肯定地說。但是你爲什麼認爲這是SerDe的問題?我會認爲這是一個單獨的問題,不是嗎? –
我有一個類似的問題,並能夠成功地用這個答案建立一個表,但遇到聚合問題在查詢時間。一些挖掘和我結束了通過更改「org.apache.hadoop.hive.contrib.serde2.RegexSerDe」解析爲「org.apache.hadoop.hive.serde2.RegexSerDe」 – jlemaitre
請使用MultiDelimitSerde
CREATE EXTERNAL TABlE tableex(id INT, name STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"="~*")
STORED AS TEXTFILE
LOCATION '/user/myusername';
並再次,一個SQL問題,以多餘的ALL-CAPS TITLE。吉茲。 – 2013-09-21 10:21:45