[HADOOP] Spark에서지도 작업의 ID를 얻는 방법?
HADOOPSpark에서지도 작업의 ID를 얻는 방법?
Spark에서지도 작업의 ID를 가져 오는 방법이 있습니까? 예를 들어 각 맵 태스크가 사용자 정의 함수를 호출하면 해당 사용자 정의 함수에서 해당 맵 태스크의 ID를 얻을 수 있습니까?
해결법
-
==============================
1.지도 작업의 ID가 무슨 뜻인지 잘 모르겠지만 TaskContext를 사용하여 작업 정보에 액세스 할 수 있습니다.
지도 작업의 ID가 무슨 뜻인지 잘 모르겠지만 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)
유사한 기능이 Spark 2.2.0의 PySpark에 추가되었습니다 (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)
-
==============================
2.나는 TaskContext.taskAttemptId가 당신이 원하는 것이라고 믿는다. TaskContext.get을 통해 함수 내에서 현재 작업의 컨텍스트를 가져올 수 있습니다.
나는 TaskContext.taskAttemptId가 당신이 원하는 것이라고 믿는다. TaskContext.get을 통해 함수 내에서 현재 작업의 컨텍스트를 가져올 수 있습니다.
from https://stackoverflow.com/questions/31631791/how-to-get-id-of-a-map-task-in-spark by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브에 데이터를 조 변경 / 피벗하는 방법은 무엇입니까? (0) | 2019.05.28 |
---|---|
[HADOOP] Hadoop에서 작업을 줄이는시기는 언제 시작합니까? (0) | 2019.05.28 |
[HADOOP] Hadoop 작업을 만들기 위해 mapred 또는 mapreduce 패키지를 사용하는 것이 더 좋습니까? (0) | 2019.05.28 |
[HADOOP] 손상된 HDFS 파일을 수정하는 방법 (0) | 2019.05.28 |
[HADOOP] Hadoop에서 여러 MapReduce 작업 체인화 (0) | 2019.05.28 |