3
我試圖從一個JSON文件,它看起來像這樣創建外部表:如何在Hive shell/JDBC語句中轉義特殊字符?
{"id": "0010001", "my$entities": [{"a": "foo", "b": "bar"}]}
這是HDFS文件,我沒有關於它的控制。
我用rcongiu's JSON serde,寫我的發言是這樣的:
create external table json3( id STRING,
my$entities STRING)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/my/path/to/dir/';
但隨後蜂巢外殼不停地抱怨:
無法識別附近「伊蒂埃斯「STRING」輸入「)」列類型
我假設它是導致問題的美元符號「$」。現在我已經嘗試使用倒退(`)和倒退,正斜槓來逃避它,但沒有運氣。我想知道是否有辦法在不更改原始數據的情況下解決此問題?
oops不能相信我錯過了自述文件中的映射功能。但是在你的答案中有一個錯字,它應該是:'create external table json3(id STRING, myentities STRING) ROW FORMAT SERDE'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES(「mapping.myentities」=「 「我的$實體」) LOCATION'/ my/path/to/dir /'; 「對嗎?我通過映射功能解決了我的問題。 – Liam 2013-05-02 16:57:33
是的,感謝您修復它,這是一個複製粘貼錯字 – 2013-05-03 08:30:59