aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/scala/org/apache/spark/util/JsonProtocol.scala')
-rw-r--r--core/src/main/scala/org/apache/spark/util/JsonProtocol.scala31
1 files changed, 31 insertions, 0 deletions
diff --git a/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala b/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
index 19654892bf..d990fd49ef 100644
--- a/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
+++ b/core/src/main/scala/org/apache/spark/util/JsonProtocol.scala
@@ -62,6 +62,10 @@ private[spark] object JsonProtocol {
blockManagerRemovedToJson(blockManagerRemoved)
case unpersistRDD: SparkListenerUnpersistRDD =>
unpersistRDDToJson(unpersistRDD)
+ case applicationStart: SparkListenerApplicationStart =>
+ applicationStartToJson(applicationStart)
+ case applicationEnd: SparkListenerApplicationEnd =>
+ applicationEndToJson(applicationEnd)
// Not used, but keeps compiler happy
case SparkListenerShutdown => JNothing
@@ -157,6 +161,18 @@ private[spark] object JsonProtocol {
("RDD ID" -> unpersistRDD.rddId)
}
+ def applicationStartToJson(applicationStart: SparkListenerApplicationStart): JValue = {
+ ("Event" -> Utils.getFormattedClassName(applicationStart)) ~
+ ("App Name" -> applicationStart.appName) ~
+ ("Timestamp" -> applicationStart.time) ~
+ ("User" -> applicationStart.sparkUser)
+ }
+
+ def applicationEndToJson(applicationEnd: SparkListenerApplicationEnd): JValue = {
+ ("Event" -> Utils.getFormattedClassName(applicationEnd)) ~
+ ("Timestamp" -> applicationEnd.time)
+ }
+
/** ------------------------------------------------------------------- *
* JSON serialization methods for classes SparkListenerEvents depend on |
@@ -346,6 +362,8 @@ private[spark] object JsonProtocol {
val blockManagerAdded = Utils.getFormattedClassName(SparkListenerBlockManagerAdded)
val blockManagerRemoved = Utils.getFormattedClassName(SparkListenerBlockManagerRemoved)
val unpersistRDD = Utils.getFormattedClassName(SparkListenerUnpersistRDD)
+ val applicationStart = Utils.getFormattedClassName(SparkListenerApplicationStart)
+ val applicationEnd = Utils.getFormattedClassName(SparkListenerApplicationEnd)
(json \ "Event").extract[String] match {
case `stageSubmitted` => stageSubmittedFromJson(json)
@@ -359,6 +377,8 @@ private[spark] object JsonProtocol {
case `blockManagerAdded` => blockManagerAddedFromJson(json)
case `blockManagerRemoved` => blockManagerRemovedFromJson(json)
case `unpersistRDD` => unpersistRDDFromJson(json)
+ case `applicationStart` => applicationStartFromJson(json)
+ case `applicationEnd` => applicationEndFromJson(json)
}
}
@@ -430,6 +450,17 @@ private[spark] object JsonProtocol {
SparkListenerUnpersistRDD((json \ "RDD ID").extract[Int])
}
+ def applicationStartFromJson(json: JValue): SparkListenerApplicationStart = {
+ val appName = (json \ "App Name").extract[String]
+ val time = (json \ "Timestamp").extract[Long]
+ val sparkUser = (json \ "User").extract[String]
+ SparkListenerApplicationStart(appName, time, sparkUser)
+ }
+
+ def applicationEndFromJson(json: JValue): SparkListenerApplicationEnd = {
+ SparkListenerApplicationEnd((json \ "Timestamp").extract[Long])
+ }
+
/** --------------------------------------------------------------------- *
* JSON deserialization methods for classes SparkListenerEvents depend on |