将实木复合地板文件读取到多个分区

时间:2018-07-05 12:48:35

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

我正在使用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运行联接。

0 个答案:

没有答案