【发布时间】:2021-09-30 12:37:22
【问题描述】:
我们有一个在独立集群模式下运行的 Spark 作业,它从 HDFS 读取数据并使用我们的自定义压缩器组件进行压缩,并将 .zip 文件写入 Azure blob 存储。我们的 Spark 和 HDFS 托管在同一个数据中心(本地)。
例如,Spark 作业正在从本地 HDFS 读取 8 GB 文件并在 Azure blob 存储上创建 3 GB .zip,在这种情况下,Spark 是否会将 8 GB 文件复制到 Azure blob 存储,然后将其压缩到一个 3 GB .zip 文件,或者压缩是否发生在执行程序/工作程序节点并且只有压缩数据 (3 GB) 将发送到 Azure blob 存储?我想了解在私有本地存储到 Azure 存储之间发生的数据传输量,是 3 GB 还是 8 GB?
下面是代码sn-p,
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。
【问题讨论】:
-
你能接受答案或说明为什么不能吗?谢谢
标签: azure apache-spark apache-spark-sql azure-blob-storage