frameless
frameless copied to clipboard
Add dayofyear, weekofyear, month, dayofmonth, minute, second, next_da…
…y Column functions
Related to #164
@Avasil Sorry for taking so long to have a look at your PR... The diff looks pretty good at a quick glance, do you need help on anything to get the CI green before the review?
Thanks and no problem @OlivierBlanvillain I was a bit busy lately too - I think I'm good, If I have any issues with java.sql.Date
I'll let you guys know on gitter. :)
@OlivierBlanvillain Hmm, now it fails the test related to #205:
test("#205: comparing literals encoded using Injection") {
import org.apache.spark.sql.catalyst.util.DateTimeUtils
implicit val dateAsInt: Injection[java.sql.Date, Int] =
Injection(DateTimeUtils.fromJavaDate, DateTimeUtils.toJavaDate)
val today = new java.sql.Date(System.currentTimeMillis)
val data = Vector(P(42, today))
val tds = TypedDataset.create(data)
tds.filter(tds('d) === today).collect().run()
}
}
final case class P(i: Int, d: java.sql.Date)
I'ts failing with:
[info] Cause: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 86, Column 6: failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 86, Column 6: Assignment conversion not possible from type "java.lang.Integer" to type "java.sql.Date"
(...)
[info] /* 009 */ private java.sql.Date argValue;
(...)
[info] /* 086 */ final java.sql.Date value2 = resultIsNull ? null : org.apache.spark.sql.catalyst.util.DateTimeUtils.fromJavaDate(argValue);
Any tips how to debug stuff like that? I need to somehow figure out why Spark tries to generate code this way. :D
@OlivierBlanvillain @imarios Any ideas how to proceed? :) IIRC many other column functions could use java.sql.Date
encoder in similar way to next_day