我试图通过Spark / Scala在Hive表中追加一些行(500万行/ 2800列),但是经过很长时间后,该过程似乎停滞了。日志没有显示任何错误。
如何确定该过程确实在运行? 有什么事情可以优化工作?
我的提交配置:
-驱动程序内存15 G -执行者内存30克 --num-executors 35 --executor-cores 5
谢谢!
def exprToAppend(myCols: Set[String], allCols: Set[String]) = {
import org.apache.spark.sql.functions._
allCols.toList.map(x => x match {
case x if myCols.contains(x) => col(x)
case _ => lit(0d).as(x)
})
}
val insert : DataFrame = tableFinal.select(exprToAppend(tableFinal.columns.toSet, historico.columns.toSet):_ *).select(historico.columns.map(x => col(x)) :_*);
insert.write.mode("append")
.format("parquet")
.insertInto(s"${Configuration.SIGLA}${Configuration.TABLE_HIST}")