override def accept()

in scala-repl/src/main/scala/spark/handlers/DatasetHandler.scala [26:58]


  override def accept(obj: Any): Boolean = obj.isInstanceOf[Dataset[_]]

  override def handle(scalaInfo: ScalaVariableInfo, loopback: Loopback, depth: Int): mutable.Map[String, Any] = {
    val obj = scalaInfo.value
    val df = obj.asInstanceOf[Dataset[_]]


    val schema = df.schema
    val jsonSchemaColumns = schema.fields.map(field => {
      val value = withJsonObject { jsonField =>
        jsonField += "name" -> wrap(field.name, null)
        jsonField += "nullable" -> wrap(field.nullable, null)
        jsonField += "dataType" -> wrap(field.dataType.typeName, null)
      }
      wrap(value, "org.apache.spark.sql.types.StructField")
    }
    )

    val jsonSchema = mutable.Map(
      ResNames.VALUE -> jsonSchemaColumns,
      ResNames.TYPE -> "org.apache.spark.sql.types.StructType",
      ResNames.LENGTH -> jsonSchemaColumns.length
    )

    val dfValue = mutable.Map(
      "schema()" -> jsonSchema,
      "getStorageLevel()" -> wrap(df.storageLevel.toString(), "org.apache.spark.storage.StorageLevel")
    )

    mutable.Map(
      ResNames.VALUE -> dfValue
    )
  }