gpt4 book ai didi

scala - 我如何更改 Apache Spark 上的数据位置

转载 作者:可可西里 更新时间:2023-11-01 15:13:25 25 4
gpt4 key购买 nike

我在 Spark 中遇到数据局部性问题。我想知道我是否有可能告诉 Spark 应该如何在节点上对数据进行分区。

比如我在HDFS上有一个文件,我想获取一个RDD。我想根据此数据的特定属性(例如,根据此数据最后一列的值)对该数据进行分区。

提前致谢

最佳答案

这种行为由您正在创建的 RDD 子类控制,在您的示例中是 Haddoop 或 NewHadoopRDD,具体取决于您使用的是哪种 Hadoop API。在每个 RDD 子类中,您可以覆盖 getPreferedLocations 方法,该方法说明每个分区的计算位置。

正如@user52045 所说,您可以实现自定义分区程序,但数据将被发送到集群中的每台机器,因为您将首先拥有一个 HadoopRDD,然后您必须应用 partitionBy(CustomPartitioner) 方法才能获得数据您在分区程序中设计的位置。

希望对你有用

关于scala - 我如何更改 Apache Spark 上的数据位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30568105/

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