如何使用Scala创建具有随机内容的大型Spark数据框架?

时间:2019-03-04 18:07:13

标签: scala apache-spark apache-spark-sql

我需要创建包含1000多个列,1000万个以上行,具有1000个分区和随机数据的大型Spark数据框架以进行测试。我知道我需要创建一个大的rdd并使用spark.sqlContext.createDataFrame(rdd, schema)在其上应用模式。到目前为止,我已经使用val schema = StructType((0 to 1000).map(n => StructField(s"column_$n", IntegerType)))创建了一个模式,但我仍然会生成带有随机内容的大RDD。我该怎么办?

1 个答案:

答案 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)