On Thu, Aug 4, 2016 at 11:56 PM, luismattor <luismat...@gmail.com> wrote:
> import java.sql.Timestamp > case class MyProduct(t: Timestamp, a: Float) > val rdd = sc.parallelize(List(MyProduct(new Timestamp(0), 10))).toDF() > rdd.printSchema() > > The output is: > root > |-- t: timestamp (nullable = true) > |-- a: float (nullable = false) > > How can I set the timestamp column to be NOT nullable? Gotcha! :) scala> import java.sql.Timestamp import java.sql.Timestamp scala> case class MyProduct(t: java.sql.Timestamp, a: Float) defined class MyProduct scala> import org.apache.spark.sql._ import org.apache.spark.sql._ scala> import org.apache.spark.sql.types._ import org.apache.spark.sql.types._ scala> import org.apache.spark.sql.catalyst.encoders._ import org.apache.spark.sql.catalyst.encoders._ scala> implicit def myEncoder: Encoder[MyProduct] = ExpressionEncoder[MyProduct].copy(schema = new StructType().add("t", "timestamp", false).add("a", "float", false)) myEncoder: org.apache.spark.sql.Encoder[MyProduct] scala> spark.createDataset(Seq(MyProduct(new Timestamp(0), 10))).printSchema root |-- t: timestamp (nullable = false) |-- a: float (nullable = false) Pozdrawiam, Jacek Laskowski ---- https://medium.com/@jaceklaskowski/ Mastering Apache Spark 2.0 http://bit.ly/mastering-apache-spark Follow me at https://twitter.com/jaceklaskowski --------------------------------------------------------------------- To unsubscribe e-mail: user-unsubscr...@spark.apache.org