Как получить идентификатор задачи карты в Spark?

Есть ли способ получить идентификатор задачи карты в Spark? Например, если каждая задача карты вызывает определенную пользователем функцию, могу ли я получить идентификатор этой задачи карты из этой пользовательской функции?

Я не уверен, что вы подразумеваете под идентификатором задачи карты, но вы можете получить доступ к информации о задаче с помощью TaskContext :

 import org.apache.spark.TaskContext sc.parallelize(Seq[Int](), 4).mapPartitions(_ => { val ctx = TaskContext.get val stageId = ctx.stageId val partId = ctx.partitionId val hostname = java.net.InetAddress.getLocalHost().getHostName() Iterator(s"Stage: $stageId, Partition: $partId, Host: $hostname") }).collect.foreach(println) 

Аналогичная функциональность была добавлена ​​в PySpark в Spark 2.2.0 ( SPARK-18576 ):

 from pyspark import TaskContext import socket def task_info(*_): ctx = TaskContext() return ["Stage: {0}, Partition: {1}, Host: {2}".format( ctx.stageId(), ctx.partitionId(), socket.gethostname())] for x in sc.parallelize([], 4).mapPartitions(task_info).collect(): print(x) 
  • Скорость компиляции Java и скорость компиляции Scala
  • Синтаксис сахара: _ * для лечения Seq как параметры метода
  • Как передать дополнительные параметры UDF в SparkSql?
  • SparkSQL: как работать с нулевыми значениями в пользовательской функции?
  • Как записать файл в Scala?
  • scala slick метод, который я пока не понимаю
  • Создание неизменяемых парных объектов
  • Увеличить размер кучи JVM для Scala?
  • Как выйти из цикла в Scala?
  • Сглаживание строк в Spark
  • API Карт Google v2 SupportMapFragment внутри ScrollView - пользователи не могут прокручивать карту по вертикали
  • Давайте будем гением компьютера.