如何获取有关当前执行程序 Apache-Spark 的元数据?
How to obtain metadata about the current executor(s), Apache-Spark?
我想在执行程序执行时从其内部获取尽可能多的信息,但除了使用 Web 之外,似乎无法找到有关如何完成该操作的任何信息 UI .例如,了解哪个执行者正在处理哪个文件以及何时处理会很有用。
我需要这种调试的灵活性,但找不到任何相关信息。
谢谢
实现它的方法之一是 mapPartitionsWithContext
示例代码:
import org.apache.spark.TaskContext
val a = sc.parallelize(1 to 9, 3)
def myfunc(tc: TaskContext, iter: Iterator[Int]) : Iterator[Int] = {
tc.addOnCompleteCallback(() => println(
"Partition: " + tc.partitionId +
", AttemptID: " + tc.attemptId
)
)
iter.toList.filter(_ % 2 == 0).iterator
}
a.mapPartitionsWithContext(myfunc)
a.collect
API: https://spark.apache.org/docs/latest/api/scala/#org.apache.spark.TaskContext
但是,这并没有回答有关如何查看处理了哪个文件以及何时处理的问题。
我想在执行程序执行时从其内部获取尽可能多的信息,但除了使用 Web 之外,似乎无法找到有关如何完成该操作的任何信息 UI .例如,了解哪个执行者正在处理哪个文件以及何时处理会很有用。
我需要这种调试的灵活性,但找不到任何相关信息。
谢谢
实现它的方法之一是 mapPartitionsWithContext
示例代码:
import org.apache.spark.TaskContext
val a = sc.parallelize(1 to 9, 3)
def myfunc(tc: TaskContext, iter: Iterator[Int]) : Iterator[Int] = {
tc.addOnCompleteCallback(() => println(
"Partition: " + tc.partitionId +
", AttemptID: " + tc.attemptId
)
)
iter.toList.filter(_ % 2 == 0).iterator
}
a.mapPartitionsWithContext(myfunc)
a.collect
API: https://spark.apache.org/docs/latest/api/scala/#org.apache.spark.TaskContext
但是,这并没有回答有关如何查看处理了哪个文件以及何时处理的问题。