wyp created LIVY-601:
------------------------

             Summary: Add support for user defined date format and timezone 
when transformspark result rows to json
                 Key: LIVY-601
                 URL: https://issues.apache.org/jira/browse/LIVY-601
             Project: Livy
          Issue Type: Improvement
          Components: REPL
    Affects Versions: 0.6.0
            Reporter: wyp


When Livy get the row data from Spark DataFrame and transform those rows to 
json, we use DefaultFormats to transform Spark timestamp to scala timestamp 
which use default timezone.
{code:java}
private implicit def formats = DefaultFormats

val result = spark.sql(code)
val schema = parse(result.schema.json)

// Get the row data
val rows = result.take(maxResult)
  .map {
    _.toSeq.map {
      // Convert java BigDecimal type to Scala BigDecimal, because current 
version of
      // Json4s doesn't support java BigDecimal as a primitive type (LIVY-455).
      case i: java.math.BigDecimal => BigDecimal(i)
      case e => e
    }
  }

val jRows = Extraction.decompose(rows)

// DefaultFormats defined in org.json4s.DefaultFormats
/** Default date format is UTC time.
 */
object DefaultFormats extends DefaultFormats {
  val UTC = TimeZone.getTimeZone("UTC")

  val losslessDate = {
    def createSdf = {
      val f = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
      f.setTimeZone(UTC)
      f
    }
    new ThreadLocal(createSdf)
  }


}{code}
It would be useful if we can customize the time zone and time format



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to