| import org.jetbrains.kotlinx.dataframe.* | |
| import org.jetbrains.kotlinx.dataframe.annotations.* | |
| import org.jetbrains.kotlinx.dataframe.api.* | |
| import org.jetbrains.kotlinx.dataframe.io.* | |
| fun box(): String { | |
| val rawDf = DataFrame.readJsonStr("""[{"a":1,"b":2,"c":3,"group":{"x":10,"y":20}}]""") | |
| // ColByString | |
| rawDf.select { col<Int>("a") }.let { | |
| val v: Int = it[0].a | |
| it.compareSchemas() | |
| } | |
| // ColByStringUntyped | |
| rawDf.select { col("b") }.let { | |
| val v: Any? = it[0].b | |
| it.compareSchemas() | |
| } | |
| // StringNestedColUntyped | |
| rawDf.select { "group".col("x") }.let { | |
| val v: Any? = it[0].x | |
| it.compareSchemas() | |
| } | |
| // StringNestedCol | |
| rawDf.select { "group".col<Int>("x") }.let { | |
| val v: Int = it[0].x | |
| it.compareSchemas() | |
| } | |
| // ColumnPathColUntyped | |
| rawDf.select { pathOf("group").col("x") }.let { | |
| val v: Any? = it[0].x | |
| it.compareSchemas() | |
| } | |
| // ColumnPathCol | |
| rawDf.select { pathOf("group").col<Int>("x") }.let { | |
| val v: Int = it[0].x | |
| it.compareSchemas() | |
| } | |
| // StringSelect | |
| rawDf.select { "group".select { col<Int>("x") } }.let { | |
| val v: Int = it[0].x | |
| it.compareSchemas() | |
| } | |
| // ColumnPathSelect | |
| rawDf.select { pathOf("group").select { col<Int>("x") and col<Int>("y") } }.let { | |
| val v1: Int = it[0].x | |
| val v2: Int = it[0].y | |
| it.compareSchemas() | |
| } | |
| // PathOf | |
| DataFrame.readJsonStr("""[{"parent":{"child":1,"nested":{"deep":42}},"a":10,"b":20}]""") | |
| .select { pathOf("parent", "nested", "deep") }.let { | |
| val v: Any? = it[0].deep | |
| it.compareSchemas() | |
| } | |
| return "OK" | |
| } |