我正在使用Spark 1.2.1(我知道它很古老,但是我暂时可以使用它。),并试图像这样用sparksql读取一个约4.5GB的镶木地板文件(我将避免重复使用)
val schemaRDD: SchemaRDD = parquetFile("data.parquet")
问题在于,在第一阶段(读取镶木地板的阶段),它会创建一个分区,而不是每个块至少生成一个分区。我该如何改变这种行为?例如,我想将该文件读入32个分区。我也尝试过做:
val schemaRDD: SchemaRDD = parquetFile("data.parquet")
schemaRDD.repartition(32)
//Just forcing repartition
schemaRDD.first()
但仍将实木复合地板文件读入1个分区
这是我正在运行的代码:
val rdd: SchemaRDD = parquetFile("data.parquet")
rdd.map(row => {
row.getInt("id") -> (
row.getInt("value1"),
row.getInt("value2"))
}).groupByKey
然后使用此函数的结果针对另一个(键,值)RDD运行联接。