Когда я выполняю функции groupby и pivot с помощью Spark (набор данных), исполнители не работают.
Когда я выполняю spark-submit, ошибки нет.Но скорость медленная.Исполнители, которые работали должным образом при выполнении другой работы, кроме функций groupby и pivot (оценка SparkUI как мониторинга).Если я наблюдаю за процессором и памятью, используя top в мастере, то значения процессора и памяти не сильно отличаются от постоянного значения.Это состояние сохраняется до тех пор, пока сводка не завершится, и исполнители снова будут работать при выполнении метода сохранения.
val inputPath="hdfs://master:9000/...csv"
val outputPath="hdfs://master:9000/....csv"
val df=spark.read.option("header","true").csv(inputPath)
val text = df.select(df("text"))
val date = df.select(df("date"))
val text_rdd = text.as(Encoders.STRING).rdd
val date_rdd = date.as(Encoders.STRING).rdd
val date_text= date_rdd.zip(text_rdd)
val split_rdd = date_text.flatMapValues(_.split(" "))
val date_text_DS=split_rdd.toDS()
val date_text_DS_cols=date_text_DS.withColumnRenamed("_1", "date").withColumnRenamed("_2", "text")
date_text_DS_cols.groupBy("date").pivot("text").agg(count("date")).na.fill(0).write.format("com.databricks.spark.csv").option("header",true).save(outputPath)
Как заставить всех исполнителей работать, когда я выполняю функцию сводки?
добавить комментарии:
Я предполагаю, что сводная работа завершена, когда я вижу эту картинку.Но мастер все еще работает.Возможно, я проверяю, запущена ли программа главного драйвера, но это не так.Поворот завершен, но мастер работает.Я думаю, что это противоречиво.Интересно, задействован ли код записи?Итак, я удаляю коды после «записи».Но это то же самое.