我需要创建包含1000多个列,1000万个以上行,具有1000个分区和随机数据的大型Spark数据框架以进行测试。我知道我需要创建一个大的rdd并使用spark.sqlContext.createDataFrame(rdd, schema)
在其上应用模式。到目前为止,我已经使用val schema = StructType((0 to 1000).map(n => StructField(s"column_$n", IntegerType)))
创建了一个模式,但我仍然会生成带有随机内容的大RDD。我该怎么办?
答案 0 :(得分:2)
使用mllib软件包中的RandomRDD使其正常工作
import org.apache.spark.mllib.random.RandomRDDs._
val rdd = normalRDD(sc, 1000000L, 10).map(m => Row(schema.map(_ => Array.fill(1000)(m).mkString).toList: _*))
val schema = StructType((0 to 2000).map(n => StructField(s"column_$n", IntegerType)))
spark.sqlContext.createDataFrame(rows, schema)