2
我有我的Spark任務,每30分鐘運行一次並將輸出寫入hdfs-(/tmp/data/1497567600000)
。我有這個工作在集羣中連續運行。
如何在此數據之上創建Hive表?我在StackOverFlow中看到過一個解決方案,它在日期字段分區的數據之上創建配置單元表。這就好比,在HDFS的火花輸出上創建配置單元表
CREATE EXTERNAL TABLE `mydb.mytable`
(`col1` string,
`col2` decimal(38,0),
`create_date` timestamp,
`update_date` timestamp)
PARTITIONED BY (`my_date` string)
STORED AS ORC
LOCATION '/tmp/out/'
和解決方案建議修改表的,
ALTER TABLE mydb.mytable ADD PARTITION (my_date=20160101) LOCATION '/tmp/out/20160101'
但是,在我的情況,我有多麼的輸出目錄正在寫不知道,等我顯然不能像上面建議的那樣創建分區。
如何處理這種情況,輸出目錄是以時間戳爲基礎隨機寫入的,而且格式不是(/tmp/data/timestamp= 1497567600000
)?
如何讓Hive挑選目錄下的數據/tmp/data
?
讓我考慮第二個解決方案。你能詳細說明答案嗎?我很困惑如何在這種情況下創建表來加載分區。 – Cheater
你需要在你的問題中使用comman創建分區:'ALTER TABLE mydb.mytable ADD PARTITION(my_date = 20160101)LOCATION'/ tmp/out/20160101'' –