我是AWS上的Hive和Athena的新手。我有,看起來像一個表中的數據:AWS Athena Hive:從列中的數據中去掉不需要的字符
_id
type
title
的_id
看起來像{"$oid":"12asdf9"}
。
我已成功地創建條一切的數據,但使用regexp_extract
我現在需要把這個查詢的結果保存到_id
列,實際的ID查詢。
的解決方案我想出去(我不能去上班)是:在_id
列
- 運行
regexp_extract
- 選擇我需要的
- 轉儲其它列結果到一個新表
我的代碼做到這一點(見下文)返回line 1:8: no viable alternative at input 'create external' (service: amazonathena; status code: 400; error code: invalidrequestexception;
。
我非常感謝任何幫助解決這個問題。謝謝!
CREATE EXTERNAL TABLE sitbi_test_db.combined AS
SELECT unioned._id, unioned.type, unioned.title
FROM (
SELECT a._id, regexp_extract(a._id, '(?<=oid\"\:\")(.*)(?=\"\})')
FROM sitbi_test_db.announcements a
UNION ALL
) unioned
LOCATION 's3://sitbi-test-mongodb/cleanedAnnouncements/'
注意:我手動創建一個新的目錄cleanedAnnouncements
在我的源S3鬥,我不知道這是爲了指向雅典娜輸出鬥
據我所知,你不能創建與雅典娜select語句表,他們必須從'S3'加載,所以看起來好像你正指向'S3'中的一個位置,但實際上並沒有加載任何東西。 –