当前位置: 首页 > 知识库问答 >
问题:

Apache Spark在哪里对输出进行压缩?

罗智志
2023-03-14

我们有一个在独立集群模式下运行的Spark作业,它从HDFS读取数据,并使用自定义压缩器组件进行压缩,并将.zip文件写入Azure blob存储。我们的Spark和HDFS托管在同一个数据中心(on-prem)。

例如,Spark作业从on-prem HDFS中读取8 GB文件,并在Azure blob存储中创建3 GB.zip,在本例中,Spark是将8 GB文件复制到Azure blob存储中,然后将其压缩为3 GB.zip文件,还是压缩发生在executor/worker节点上,只将压缩数据(3 GB)发送到Azure blob存储中?我想了解在我的情况下,私有on-prem到Azure存储之间发生的数据传输量,是3 GB还是8 GB?

下面是代码片段,

sparkSession
      .read
      .schema(getInputSchema)
      .option("escape", "\"")
      .option("quote", "\"")
      .csv(hdfsPath)
      .write
      .repartition(1)
      .option("escape", "\"")
      .option("quote", "\"")
      .option("header", "true")
      .option("compression", "com.explore.compress.CustomZipCodec")
      .partitionBy("colum1")
      .csv(azureBlobPath)

补充一下,我们使用的是apache-spark-2.3.x

共有1个答案

郭和硕
2023-03-14

压缩是程序性的,将通过执行器发生在工人身上。因此,在prem和3GB转移到Azure。

 类似资料:
  • 问题内容: 我永远安装并正在使用它,发现它很有趣。 但是我意识到日志被放置在其他地方。有什么提示吗? 问题答案: 永远使用命令行选项进行输出: 例如: 见这里获取更多信息

  • 代码: 产出:4 1 [代码连结][1] 前缀运算符的优先级高于逻辑运算符。2.逻辑<代码> 怀疑: > 为什么这里不遵循第一条规则?这不应该是正确的吗? 因此,在printf语句中,的值变为5。 为什么这里违反了一般的优先规则?当两个运算符的优先级相同时,关联性开始起作用。编译器不应该首先查看是计算还是

  • 本文向大家介绍如何在PowerShell中对输出进行排序?,包括了如何在PowerShell中对输出进行排序?的使用技巧和注意事项,需要的朋友参考一下 要在PowerShell中对输出进行排序,您需要使用Sort-Object Pipeline cmdlet。在下面的示例中,我们将从Get-Process命令中检索输出,然后根据内存和CPU使用率对它们进行排序。 示例 输出结果 在上面的示例中,输

  • MVC中DTO转换应该在哪里进行? 我正在使用JPA。从控制器接收DTO作为参数。 此时,是否需要在控制器中转换它并将其传递给服务? 或者,我想知道服务是否接收DTO并转换它。

  • 问题内容: 我正在调试Linux(特别是ubuntu服务器9.04)的驱动程序,并且代码中有几个printf语句。 在哪里可以查看这些语句的输出? EDIT1:我要执行的操作是使用proc文件系统写入内核。打印代码是 在kern.log中,当我尝试覆盖文件/ proc / net / madwifi / ath1 / fractel_config(当然会随着时间的变化)时,看到以下消息。 有什么解

  • 问题内容: 我正在尝试使用的插件(jmeter- websocket )对服务器进行压力测试。关键是该插件没有附带文档说明如何使用它,因此我不确定是否支持我的期望。 我设法使用提到的插件运行了一个示例测试,它已成功连接到服务器。它也设法与服务器进行通信,但是一旦完成接收到第一个响应,它就会断开连接。我希望以某种方式配置此插件,以便它将与服务器保持持久的连接几分钟,在断开连接之前发送和接收一些消息。