由于SparkSQL默认200个分区,为了处理小文件决定使用reparation和coalesce重分区,代码如下
(一)df_1.coalesce(1).createOrReplaceTempView(“table_tmp”)
竟然报错。。
Job aborted due to stage failure: Task 1 in stage 8.0 failed 4 times, most recent failure: Lost task 1.3 in stage 8.0 (TID 642, svldl061.csvw.com, executor 8): org.apache.spark.SparkException: Task failed while writing rows.
查看执行过程
具体原因有待研究??
(二)df_1.repartition(1).createOrReplaceTempView(“table_tmp”)
运行成功了!!!
查看执行过程(和上面几乎一样,不过少了Coalesce这关键一步!!!)
区别在于coalesce第八步只有1个分区,repartition第八步有200个分区。