All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alpine.plugin.core.io.ColumnDef.scala Maven / Gradle / Ivy

There is a newer version: 1.11
Show newest version
/**
  * COPYRIGHT (C) 2015 Alpine Data Labs Inc. All Rights Reserved.
  */

package com.alpine.plugin.core.io

import com.alpine.plugin.core.annotation.AlpineSdkApi

object ColumnType {

  val SPARK_SQL_DATE_FORMAT = "yyyy-mm-dd"
  val SPARK_SQL_TIME_STAMP_FORMAT = "yyyy-mm-dd hh:mm:ss"
  val PIG_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZZ"

  //add another field for format. Which we can use for the date time format
  case class TypeValue(name: String, format: Option[String]) {
    def this(name: String) {
      this(name, None)
    }
  }


  object TypeValue {
    def apply(name: String): TypeValue = new TypeValue(name)
  }

  // These only represent column types of HDFS based datasets.
  // DB column types are too diverse and many to handle them here.
  val String = TypeValue("String")
  val Int = TypeValue("Int")
  val Long = TypeValue("Long")
  val Float = TypeValue("Float")
  val Double = TypeValue("Double")
  val Boolean = TypeValue("Boolean")
  val DateTime = TypeValue("DateTime", Some(PIG_DATE_FORMAT))

  def DateTime(format: String): TypeValue = TypeValue(DateTime.name, Some(format))

  /**
    * Map of Strings to Doubles, serialized in standard JSON.
    */
  val Sparse = TypeValue("Sparse")

}

/**
  * :: AlpineSdkApi ::
  */
@AlpineSdkApi
case class ColumnDef(columnName: String, columnType: ColumnType.TypeValue)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy