Trick or treat? :jack_o_lantern: We’ve got one mor...
# datascience
a
Trick or treat? 🎃 We’ve got one more release candidate in the bag: Kotlin DataFrame 1.0.0-rc02 is out. This is the final release candidate before 1.0. The 1.0 API was locked in RC1, so RC2 focuses on validating real projects, improving performance and documentation, and tightening integrations before the final release. What’s new: 🧰 Kotlin Toolchain Kotlin DataFrame is now available as a built-in Kotlin Toolchain technology. With dataframe: enabled, a project can add dataframe-core together with the matching Compiler Plugin; optional IO modules can be added separately when needed. ⚙️ Compiler Plugin and groupBy The Compiler Plugin now tracks schema changes through more supported String API overloads, so typed column access can continue through more existing pipelines. We also reduced memory allocations and improved groupBy performance. 📚 Documentation Dozens of operations received new or expanded KDocs, tests, and website pages. Every operation KDoc now links to the website, making it easier to move from an API found in the IDE to detailed explanations and examples. 🌍 Geo, Arrow, and Parquet Geo setup is simpler: the required geometry and CRS types are now exposed transitively. Arrow and Parquet now read time-zone-aware timestamps as Instant and correctly handle nullable struct columns. 📦 How to try it Gradle, Maven, or Kotlin Toolchain: 1.0.0-rc02 Kotlin Notebook: 1.0.0-rc02n See the release notes for the required notebook kernel version and Kandy ordering details. Migration guide → kotlin.github.io/dataframe/migrationto-1-0.html Compiler Plugin → kotlin.github.io/dataframe/compiler-plugin.html Kotlin Toolchain setup → kotlin.github.io/dataframe/setupkotlintoolchain.html Release notes → github.com/Kotlin/dataframe/…/… 🤖 We’re also looking at how AI coding assistants use Kotlin DataFrame. If an assistant has produced incorrect, outdated, or unexpectedly good DataFrame code for you, please share the example here. We’re particularly interested in places where the right API is difficult to discover from the docs or website. So, trick or treat? Which project is getting the RC2 treatment to make sure there are no hidden skeletons in the pipeline before the 1.0 launch? 🎃
dataframe 2
kodee happy 2
K 4
r
I found if I use DataFrameT.rows() , and then try to access type-safe column generated by the Dataframe Compiler Plugin, the IDE really, really struggles with importing said type safe rows. At least once, manually triggering Gradle sync allowed the IDE to auto-import them, but it almost always doesn't help. I have not been able to reproduce the behavior when Gradle sync allows auto-import. Junie is surprisingly helpful with this. It suggests fixing with either imports/wildcard imports, or column-based strings. The latter obviously not being ideal. I found that the AI keeps suggestions stringly typed solutions even when typed columns are available. Recently, I had ChatGPT write a innerJoin, and it wrote it using a stringly typed column name until I asked if it could be done using type-safe columns.
j
@Rafael Diaz could you share a code example so we can try and reproduce the issue? 🙂 as far as I know no importing should be needed if the compiler plugin is loaded. The accessors are local after all
r
Yup it’s that one!
j
Nice 🙂 Please vote for the issue on YouTrack 😜 I just asked for an update, it's been a long time since I created it
until then, manually importing (or with .*) is the easiest way to go. Or you convert the "external" type to a "local" one by adding a
.select { all() }
or
.reorderColumnsByName()
on your dataframe 🙂 that way you get new accessors (
.add {}
seems to be the shortest, haha)
r
Just upvoted the YouTrack issue! And thanks for the advice.
kodee happy 1