| @file:Suppress("UnusedImport") | |
| import org.jetbrains.kotlinx.dataframe.* | |
| import org.jetbrains.kotlinx.dataframe.annotations.* | |
| import org.jetbrains.kotlinx.dataframe.api.* | |
| import org.jetbrains.kotlinx.dataframe.io.* | |
| @DataSchema | |
| data class Person(val firstName: String, val lastName: String, val age: Int, val city: String?) | |
| @DataSchema | |
| data class Group(val id: String, val participants: List<Person>) | |
| fun box(): String { | |
| val df = listOf( | |
| Group("1", listOf( | |
| Person("Alice", "Cooper", 15, "London"), | |
| Person("Bob", "Dylan", 45, "Dubai") | |
| )), | |
| Group("2", listOf( | |
| Person("Charlie", "Daniels", 20, "Moscow"), | |
| Person("Charlie", "Chaplin", 40, "Milan"), | |
| )), | |
| ).toDataFrame(maxDepth = 0) | |
| val groups = df.add("groupSize") { | |
| // interestingly, this is still a DataFrame. Because @DataSchema Person | |
| participants.rowsCount() | |
| } | |
| return "OK" | |
| } |