我有一个火花工作,在第一次初始运行时运行5分钟,然后需要几分钟......后续运行时超过20-30。我正在阅读一个镶木地板文件,然后创建数据框并以.json格式编写。我没有在代码中的任何地方使用cache(),persist()或unpersist()。 这是本地实例。 可能是什么问题 ?
配置参数
val spark = SparkSession
.builder()
.appName("example")
.config("spark.sql.warehouse.dir", warehouseLocation)
.config("spark.master", "local")
.config("spark.serializer",
"org.apache.spark.serializer.KryoSerializer")
.getOrCreate()
//set new runtime options
spark.conf.set("spark.sql.shuffle.partitions", 14)
spark.conf.set("spark.executor.memory", "6g")
spark.conf.set("spark.driver.host", "localhost")
spark.conf.set("spark.cores.max", "8")
spark.conf.set("spark.eventLog.enabled", true)
spark.sparkContext.setCheckpointDir("somedirectorypath")
spark.sparkContext.setLogLevel("WARN")
答案 0 :(得分:0)
如果您在“追加”模式下编写镶木地板,则第一次写入将优化为直接写入该位置。 “覆盖”模式也是如此。后续写入使用ParquetOutputCommitter,它将首先写入临时位置,然后将文件复制到目标目录。