gpt4 book ai didi

azure - 通过 Spark 更快地读取 Blob 存储

转载 作者:行者123 更新时间:2023-12-03 03:09:18 27 4
gpt4 key购买 nike

我目前设置了一个包含 4 个工作节点和 2 个头节点的 Spark 集群。我在 Blob 存储中有一个 1.5 GB 的 CSV 文件,可以从头节点之一访问该文件。我发现使用 PySpark 加载这些数据并缓存它需要相当长的时间。有没有办法更快地加载数据?

我的一个想法是加载数据,然后将数据分区为 k(节点数)个不同的段,并将它们作为 parquet 文件保存回 blob。这样,我可以并行加载数据集的不同部分,然后联合...但是,我不确定所有数据是否都只加载到头节点上,然后当计算发生时,它会分发到其他机器。如果后者是真的,那么分区就没用了。

非常感谢您的帮助。谢谢。

最佳答案

通常,您希望 Blob 存储上的文件大小较小,这样您就可以在 Blob 存储之间传输数据以进行并行计算,从而获得更快的传输速率。一个好的经验法则是文件大小在 64MB - 256MB 之间;一个很好的引用是 Vida Ha 的 Data Storage Tips for Optimal Spark Performance

调用读取文件然后将其保存回 Parquet(使用默认的快速编解码器压缩)是一个好主意。 Parquet 本身由 Spark 使用,并且查询速度通常更快。唯一的调整是根据文件大小与工作节点数量进行更多分区。数据被加载到工作节点上,但分区很有帮助,因为会创建更多任务来读取更多文件。

关于azure - 通过 Spark 更快地读取 Blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com