Comments (5)
@jgoday yep don't hesistate to rise a PR! We can discuss what to do there.
But indeed, these are all good questions. How it behaves in 3.0 and 3.1 than?
@pomadchin, I have created this PR #581.
EncoderTests and a sample with Duration, Period and Instant
seems to work fine with all versions (3.0, 3.1 and 3.2)
case class Bar(b: String, a: Long)
case class Foo(f: Long, o: Bar, p: Period, d: Duration, i: Instant = Instant.now())
val fTypedDataset = TypedDataset.create(
Foo(1, Bar("a", 2), Period.ofDays(1), Duration.ofHours(4))
:: Foo(2, Bar("c", 30), Period.ofDays(2), Duration.ofHours(3))
:: Foo(10, Bar("b", 20), Period.ofDays(3), Duration.ofHours(2))
:: Nil)
fTypedDataset.show().run()
from frameless.
Hi, I would like to try this one if possible,
considering that it is the first time that I try frameless,
(starting to look to some typelevel/cats projects).
As I can see in the current spark docs (3.2),
catalyst types for Instant, Duration and Period are Long and Int.
Would it be enough to provide custom TypedEncoder for these types with catalystRepr (being Long and Int) ?
from frameless.
Hey @jgoday, thanks for looking into this issue! I think it could be enough. Spark uses these DateTime utils though (example for instant) mb we can reuse is as well.
Unless there are other obvious complains and reasons not to do it.
Keep in mind that we're cross publishing now for all 3.x versions! Hopefully it won't create any major issues though.
from frameless.
Ok, thank you so much @pomadchin.
I was able to test it against spark 3.0.3, 3.1.2 and 3.2.0 with no problem, but there is no DayTimeIntervalType and YearMonthIntervalType sql types prior 3.2, so I have used the following ones as catalyst types for:
- java.time.Period -> IntegerType (days)
- java.time.Duration -> LongType (millis)
I don't know if it is the best approach.
Should I make a PR ?
from frameless.
@jgoday yep don't hesistate to rise a PR! We can discuss what to do there.
But indeed, these are all good questions. How it behaves in 3.0 and 3.1 than?
from frameless.
Related Issues (20)
- Snapshot publish failed
- Compatibility with Spark 3.2.1 HOT 11
- Cats-effect 3 roadmap HOT 1
- CI release failure HOT 7
- How should parse and convert data from an external medium in a generic way? HOT 2
- Frameless 0.13 release HOT 2
- spark 3.4 support - replacing dataTypeFor logic HOT 8
- 3.4 AgnosticEncoder support - Spark Connect HOT 1
- [feature] DatasetT HOT 1
- AVG and KMeans tests fix HOT 1
- Add scalafmt HOT 1
- Add support for TypedDeltaTable
- use HOT 1
- Iterate over TypedColumns with evidence
- Spark 3.5 update HOT 10
- type inference for .opt no longer works without explicit type argument in Scala 2.13.x HOT 3
- Defective schema generation on array/seq column HOT 5
- scalafmt was not maintained for some of the code? HOT 2
- Add TypedEncoder for shapeless Record. HOT 3
- Spark 4.0 / DBR 14.2+ - bleeding edge changes HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from frameless.