【发布时间】:2017-06-28 10:10:31
【问题描述】:
如何将 spark 数据帧保存到分区 hive 表的一个分区中?
raw_nginx_log_df.write.saveAsTable("raw_nginx_log")
上述方式可以覆盖整个表,但不能覆盖特定分区。 虽然我可以通过下面的代码解决问题,但显然不够优雅。
raw_nginx_log_df.registerTempTable("tmp_table")
sql(s"INSERT OVERWRITE TABLE raw_nginx_log PARTITION (par= '$PARTITION_VAR')")
似乎在 stackoverflowc.com 中从未有过类似的问题!
【问题讨论】:
-
raw_nginx_log_df.write.partitionBy("partition_col").mode("overwrite").saveAsTable("raw_nginx_log") -
如果 raw_nginx_log_df2 需要保存到表的另一个分区怎么办?
-
“不优雅” 是个人喜好问题(例如,Scala 让我呕吐) - 问题是,它是否有效?它在性能方面有什么不同吗?如果不满意,可以为 Spark 代码库贡献补丁吗?
标签: apache-spark dataframe hive