2017-10-30 1 views
0

다른 데이터 프레임을 결합한 결과로 스파크 데이터 프레임을 만들었습니다.스파크 데이터 프레임에서 아무 기능도 호출 할 수 없습니다.

이제 데이터 프레임에서 모든 메서드 호출이 실패합니다. 특정 오류가 발생하지 않습니다. ExecutorLostFailure, 슬레이브 손실, 컨테이너가 종료 된 노드에서 릴리스 된 것과 같은 오류 만.

데이터 프레임에 show()를 (를) 성공적으로 호출 할 수 없습니다. 쇼()

Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 204 in stage 14.0 failed 4 times, most recent failure: Lost task 204.3 in stage 14.0 (TID 124823, ip-172-31-58-23.ec2.internal, executor 491): ExecutorLostFailure (executor 491 exited caused by one of the running tasks) Reason: Slave lost 
Driver stacktrace: 
    at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1569) 
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1557) 
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1556) 
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) 
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) 
    at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1556) 
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:815) 
    at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:815) 
    at scala.Option.foreach(Option.scala:257) 
    at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:815) 
    at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1784) 
    at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1739) 
    at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1728) 
    at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48) 
    at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:631) 
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:2022) 
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:2043) 
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:2062) 
    at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:336) 
    at org.apache.spark.sql.execution.CollectLimitExec.executeCollect(limit.scala:38) 
    at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collectFromPlan(Dataset.scala:2853) 
    at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2153) 
    at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2153) 
    at org.apache.spark.sql.Dataset$$anonfun$55.apply(Dataset.scala:2837) 
    at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:65) 
    at org.apache.spark.sql.Dataset.withAction(Dataset.scala:2836) 
    at org.apache.spark.sql.Dataset.head(Dataset.scala:2153) 
    at org.apache.spark.sql.Dataset.take(Dataset.scala:2366) 
    at org.apache.spark.sql.Dataset.showString(Dataset.scala:245) 
    at org.apache.spark.sql.Dataset.show(Dataset.scala:644) 
    at org.apache.spark.sql.Dataset.show(Dataset.scala:603) 
    at org.apache.spark.sql.Dataset.show(Dataset.scala:612) 
    at com.example.DataCuration$.main(DataCurationMain.scala:81) 
    at com.example.DataCuration.main(DataCurationMain.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

내 생각 엔, 난 메모리가 부족하고 있습니다를 호출하는 동안 다음 는 예외 스택입니다. 그렇게 판단하는 가장 좋은 방법은 무엇입니까?

+0

게시 코드 없음으로 대답하는 것은 매우 어렵습니다. 경우에 따라이 예외가 메모리 문제를 숨길 수 있습니다. –

+0

ok. 스파크/스칼라 코드의 메모리 상태를 로그하는 일반적인 방법은 무엇입니까? –

+0

배포 환경이란 무엇입니까? Spark 버전은 무엇입니까? 데이터 세트에서 '머리'를 쓸 수 있습니까? –

답변

0

기계에 문제가 발생했습니다. 드라이버 메모리가 부족한 경우가 대부분 실행을 제한하고있었습니다.