【问题标题】:How can I save a spark dataframe as a partition of a partitioned hive table如何将火花数据帧保存为分区配置单元表的分区
【发布时间】: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 代码库贡献补丁吗?
  • 这里是解决方案。 stackoverflow.com/questions/38487667/…

标签: apache-spark dataframe hive


【解决方案1】:
YourDataFrame.write.format("parquet").option("/pathHiveLocation").mode(SaveMode.Append).partitionBy("partitionCol").saveAsTable("YourTable")

用于镶木地板文件/表格。您可以根据自己的需要进行定制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2021-02-12
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多