有多种方式把一个dataframe保存到hive表中:
1.直接把dataframe的内容写入到目标hive表
df.write().mode("overwrite").saveAsTable("tableName");
或
df.select(df.col("col1"),df.col("col2")) .write().mode("overwrite").saveAsTable("schemaName.tableName");
或
df.write().mode(SaveMode.Overwrite).saveAsTable("dbName.tableName");
- 1
- 2
- 3
- 4
- 5
2.注册一张临时表,再通过sql语句插入到目标表
df.createOrReplaceTempView("$tempTableName")
spark.sql("insert into table dbName.$hive_table_name PARTITION($partition_column) select * from $tempTableName")
- 1
- 2
小结
第2种方式可以指定写入的分区,而临时表会在任务完成时自动清除,但最好是在不使用时主动清除掉。
转载来源:https://blog.csdn.net/zg_hover/article/details/109044218