Apache spark 除了使用collect之外,如何将rdd转换为阵列,因为collect操作花费了太多时间?

Apache spark 除了使用collect之外,如何将rdd转换为阵列,因为collect操作花费了太多时间?,apache-spark,Apache Spark,收集可能会花费太多时间, 所以我想要一个可以节省时间的手术。 我的rdd只有一个非常小的数组,如果使用collect,它会非常昂贵。 rdd的类型是rdd[Int,(Array[Array[Double]]),rdd的长度只有1。那么谁能帮助我呢?如果长度只有1,为什么不试试rdd。首先欢迎使用!这是一个质量很低的问题。请提供一个答案,并说明到目前为止您已经尝试了什么!如果您的RDD非常小。不需要使用和RDD,而是一个简单的collectioncollect将收集每个分区,首先不会。在单个分区上

收集可能会花费太多时间, 所以我想要一个可以节省时间的手术。 我的rdd只有一个非常小的数组,如果使用collect,它会非常昂贵。
rdd的类型是rdd[Int,(Array[Array[Double]]),rdd的长度只有1。那么谁能帮助我呢?

如果长度只有1,为什么不试试
rdd。首先

欢迎使用!这是一个质量很低的问题。请提供一个答案,并说明到目前为止您已经尝试了什么!如果您的RDD非常小。不需要使用和RDD,而是一个简单的collectioncollect将收集每个分区,首先不会。在单个分区上收集将非常快。你为什么要用RDD来保存一条记录呢?因为a使用RDD.combineByKey,结果是RDD包含一条记录,所以我想把RDD改成数组,我昨天用了RDD.collect,它花费了很多时间,所以还有其他方法吗?collect可能需要很长时间,因为它是你代码中的第一个动作。combineByKey直到collect才执行,这让它看起来像是collect花了这么长时间。是的,谢谢。现在我有很多数据要在集群上处理,处理结果的类型是RDD[Array[Double],我最后想收集(或减少)它们为Array[Double](average Array[Double]),我可以使用哪种操作来节省时间?我使用聚合或减少,但花费的时间太多。使用减少来创建数组[Double]。如果需要很长时间,则需要考虑调整集群配置。一个好地方是,cloudera网站也值得一看。