Hive 臨時表是用于特定查詢的中間結果集,它們在會話結束時會被自動刪除
-- 創建一個臨時表 temp_table
CREATE TEMPORARY TABLE temp_table AS
SELECT * FROM source_table WHERE condition;
-- 將 temp_table 的數據插入到目標表 target_table 中
INSERT OVERWRITE TABLE target_table
SELECT * FROM temp_table;
-- 刪除臨時表 temp_table
DROP TABLE temp_table;
-- 創建一個臨時表 temp_table
CREATE TEMPORARY TABLE temp_table AS
SELECT * FROM source_table WHERE condition;
-- 將 temp_table 的數據插入到目標表 target_table 中
INSERT INTO TABLE target_table
SELECT * FROM temp_table;
-- 刪除臨時表 temp_table
DROP TABLE temp_table;
首先,你需要將 Hive 臨時表的數據導出到一個文件系統中,然后使用 Spark 或其他工具將數據讀取并寫入到目標存儲系統中。
例如,使用 Spark 將 Hive 臨時表的數據導出到 HDFS:
from pyspark.sql import SparkSession
# 創建 Spark 會話
spark = SparkSession.builder \
.appName("Hive Temp Table to HDFS") \
.enableHiveSupport() \
.getOrCreate()
# 讀取 Hive 臨時表數據
temp_table_data = spark.table("temp_table")
# 將數據寫入 HDFS
temp_table_data.write.text("hdfs://your-hdfs-cluster/path/to/output")
# 停止 Spark 會話
spark.stop()
然后,你可以使用 Spark 或其他工具將數據從 HDFS 讀取并寫入到目標存儲系統中。