【问题标题】:How Spark performs write operation to HiveSpark 如何对 Hive 执行写操作
【发布时间】:2021-03-25 16:28:53
【问题描述】:

我在 Spark 工作,但对它还是很陌生。我正在从事一项从某个来源读取数据、进行一些转换并写入 Hive 的工作。

为了写信给 Hive,我正在写 dataframe.write.insertInto(hive_table)

我的问题是 Spark 如何将整个 dataframe 写入 Hive?它会像不同executor上的不同分区并行写入一样并行写入,还是将各个分区的所有数据收集到驱动程序然后尝试一口气插入?

【问题讨论】:

    标签: apache-spark hive


    【解决方案1】:

    Spark 和 Hive 分区不同。 Spark 执行器将并行写入各种 Hive 分区。 Spark 分区将由执行程序并行处理,当每个执行程序遇到 Hive 分区键时,它将写入 Hive 位置中该键的新文件。 因此,如果您有 5 个 Spark 分区正在并行处理,并且 Hive 中的数据要写入 3 个分区中,那么每当每个执行程序遇到 Hive 分区的键时,它都会写入该分区的文件。 您将在每个执行程序写入的 3 个 Hive 分区位置中的每个位置看到 5 个文件

    【讨论】:

    • 我在 Hive 表中没有任何分区。根据您的评论,我想我得到了答案 - 数据并行写入 Hive。我说的对吗?
    • 是的,并行编写
    猜你喜欢
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2011-03-30
    相关资源
    最近更新 更多