Apache spark 使用循环将条目追加到RDD

Apache spark 使用循环将条目追加到RDD,apache-spark,rdd,Apache Spark,Rdd,我试图在循环的每次迭代中向现有RDD追加一个条目。到目前为止,我的代码是: var newY = sc.emptyRDD[MatrixEntry] for (j <- 0 until 8000) { var arrTmp = Array(MatrixEntry(j, j, 1)) var rddTmp = sc.parallelize(arrTmp) newY = newY.union(rddTmp) } var newY=sc.emptyRDD[矩阵中心] 对于(j来说,您

我试图在循环的每次迭代中向现有RDD追加一个条目。到目前为止,我的代码是:

var newY = sc.emptyRDD[MatrixEntry]
for (j <- 0 until 8000) {
  var arrTmp = Array(MatrixEntry(j, j, 1))
  var rddTmp = sc.parallelize(arrTmp)
  newY = newY.union(rddTmp)
}
var newY=sc.emptyRDD[矩阵中心]

对于(j来说,您遇到的问题是的重复,但您的代码根本不应该出现

如果需要标识矩阵,只需映射范围:

val newY = spark.sparkContext.range(0, 8000).map(j => MatrixEntry(j, j, 1))

使用parallelize的循环不会扩展并将所有数据保留在驱动程序内存中

您遇到的问题是重复的,但您的代码根本不应该使用

如果需要标识矩阵,只需映射范围:

val newY = spark.sparkContext.range(0, 8000).map(j => MatrixEntry(j, j, 1))
使用parallelize的循环不可缩放,并将所有数据保留在驱动程序内存中