@@ -14,13 +14,15 @@ import org.jetbrains.kotlinx.dataframe.api.at
14
14
import org.jetbrains.kotlinx.dataframe.api.by
15
15
import org.jetbrains.kotlinx.dataframe.api.byName
16
16
import org.jetbrains.kotlinx.dataframe.api.cast
17
+ import org.jetbrains.kotlinx.dataframe.api.castTo
17
18
import org.jetbrains.kotlinx.dataframe.api.colsOf
18
19
import org.jetbrains.kotlinx.dataframe.api.column
19
20
import org.jetbrains.kotlinx.dataframe.api.columnGroup
20
21
import org.jetbrains.kotlinx.dataframe.api.columnOf
21
22
import org.jetbrains.kotlinx.dataframe.api.concat
22
23
import org.jetbrains.kotlinx.dataframe.api.convert
23
24
import org.jetbrains.kotlinx.dataframe.api.convertTo
25
+ import org.jetbrains.kotlinx.dataframe.api.count
24
26
import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
25
27
import org.jetbrains.kotlinx.dataframe.api.default
26
28
import org.jetbrains.kotlinx.dataframe.api.dropNulls
@@ -100,6 +102,7 @@ import org.jetbrains.kotlinx.dataframe.explainer.PluginCallbackProxy
100
102
import org.jetbrains.kotlinx.dataframe.explainer.TransformDataFrameExpressions
101
103
import org.jetbrains.kotlinx.dataframe.impl.api.mapNotNullValues
102
104
import org.jetbrains.kotlinx.dataframe.indices
105
+ import org.jetbrains.kotlinx.dataframe.io.readJson
103
106
import org.jetbrains.kotlinx.dataframe.io.readJsonStr
104
107
import org.jetbrains.kotlinx.dataframe.io.renderToString
105
108
import org.jetbrains.kotlinx.dataframe.testResource
@@ -1421,4 +1424,33 @@ class Modify : TestBase() {
1421
1424
| 1 kotlin /kotlin 180
1422
1425
|""" .trimMargin()
1423
1426
}
1427
+
1428
+ @DataSchema
1429
+ interface ImplicitSchema {
1430
+ val perf: Double
1431
+ }
1432
+
1433
+ @Test
1434
+ @Ignore
1435
+ @Suppress(" UNUSED_VARIABLE" )
1436
+ fun castToGenerateSchema () {
1437
+ // SampleStart
1438
+ val sample = DataFrame .readJson(" sample.json" )
1439
+ // SampleEnd
1440
+ }
1441
+
1442
+ @Test
1443
+ @Suppress(" KotlinConstantConditions" )
1444
+ fun castTo () {
1445
+ val sample = dataFrameOf(" perf" )(10.0 , 20.0 , 12.0 ).cast<ImplicitSchema >()
1446
+ val files = listOf<String >() // not intended to run
1447
+ // SampleStart
1448
+ for (file in files) {
1449
+ // df here is expected to have the same structure as sample
1450
+ val df = DataFrame .readJson(file).castTo(sample)
1451
+ val count = df.count { perf > 10.0 }
1452
+ println (" $file : $count " )
1453
+ }
1454
+ // SampleEnd
1455
+ }
1424
1456
}
0 commit comments