Apache spark 如何将spark数据帧保存为分区配置单元表的分区

Apache spark 如何将spark数据帧保存为分区配置单元表的分区,apache-spark,dataframe,hive,Apache Spark,Dataframe,Hive,如何将spark数据帧保存到分区配置单元表的一个分区中 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= '$PARTITIO

如何将spark数据帧保存到分区配置单元表的一个分区中

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中似乎从来没有提出过类似的问题

YourDataFrame.write.format("parquet").option("/pathHiveLocation").mode(SaveMode.Append).partitionBy("partitionCol").saveAsTable("YourTable")

用于拼花文件/桌子。您可以根据自己的要求定制它。

原始日志df.write.partitionBy(“partition\u col”).mode(“overwrite”).saveAsTable(“原始日志”)
如果原始日志df2需要保存到表的另一个分区,该怎么办?“不优雅”是个人喜好的问题(例如,Scala让我恶心)——问题是,它有用吗?从性能角度看,这有什么区别吗?如果您不满意,您可以为Spark代码库提供补丁吗?以下是解决方案。