Comments (2)
Better design.
DataFrame API:
interface DataRowSchema
inline fun <reified T:DataRowSchema> dataFrameOf(vararg rows: T): DataFrame<T> = rows.asIterable().toDataFrame()
inline fun <reified T:DataRowSchema> DataFrame<T>.append(vararg rows: T): DataFrame<T> = concat(dataFrameOf(*rows))
User code:
@DataSchema
interface Record: DataRowSchema {
val a: Int
val b: Int
companion object
}
// region Generated code
operator fun Record.Companion.invoke(a: Int, b: Int): Record =
object: Record {
override val a = a
override val b = b
}
// endregion
// usage:
dataFrameOf(Record(1,2), Record(3,4))
.append(Record(5,6))
.add("sum") { a + b }
from dataframe.
Can we somehow get rid of DataRowSchema
?
In FIR, it's possible to add supertypes to annotated class, so at least it can disappear from user code.
And here is another example to be aware of
// User code:
@DataSchema
interface AnotherRecord: DataRowSchema {
val a: Int
val b: Int
companion object
}
@DataSchema
interface Record: DataRowSchema {
val a: List<AnotherRecord> // same as DataFrame<AnotherRecord>
val b: AnotherRecord // same as DataRow<AnotherRecord>
companion object
}
// usage:
dataFrameOf(Record(listOf(AnotherRecord(5,6)), AnotherRecord(5,6)))
from dataframe.
Related Issues (20)
- Generate sitemap.xml automatically
- Java 11? HOT 2
- JDBC H2, `CHAR(10)` column read as `Char?` instead of `String?` HOT 2
- Consider adding a parameter to nest aggregated columns: aggregate(under: String?) HOT 2
- Unresolved reference when using Properties to access HOT 9
- Kotlin DataFrame compiler plugin HOT 1
- DataFrame.read doesn't work when called in shadow jar
- Cannot run publish docs, GH actions
- Kotlin Notebook crash when creating DataFrame from List<Map> HOT 5
- `type: KType` in `DataColumnImpl` mismatches actual values sometimes HOT 3
- "Smart" column add in `DynamicDataFrameBuilder` HOT 4
- `Map<String, Any?>.toDataRow()` function?
- Maven plugin to generate schemas from data
- Add Maven and Amper configurations in the documentation
- Parallel computations
- `df.describe().describe()` crashes HOT 4
- `df.std()` does not infer types of generated columns
- Compilation error: `Not Enough Information to Infer Type Variable R` HOT 3
- `ReplCompilerException` in test
- Pivot with `default()` of different type does not re-infer type
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 dataframe.