Files
2026-02-08 11:20:43 -10:00

71 lines
1.8 KiB
Kotlin
Vendored

import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
application
kotlin("jvm")
id("org.jetbrains.kotlinx.dataframe")
// only mandatory if `kotlin.dataframe.add.ksp=false` in gradle.properties
id("com.google.devtools.ksp")
}
repositories {
mavenCentral()
mavenLocal() // in case of local dataframe development
}
application.mainClass = "org.jetbrains.kotlinx.dataframe.examples.spark.parquet.SparkParquetDataframeKt"
dependencies {
implementation(project(":"))
// Spark SQL + MLlib (Spark 4.0.0)
implementation("org.apache.spark:spark-sql_2.13:4.0.0")
implementation("org.apache.spark:spark-mllib_2.13:4.0.0")
// Kandy (Lets-Plot backend) for plotting
implementation(libs.kandy) {
// Avoid pulling transitive kotlinx-dataframe from Kandy — we use the monorepo modules
exclude("org.jetbrains.kotlinx", "dataframe")
}
// Logging to keep Spark quiet
implementation(libs.log4j.core)
implementation(libs.log4j.api)
}
// for Java 17+, and Arrow/Parquet support
application {
applicationDefaultJvmArgs = listOf(
"--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED",
)
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
tasks.withType<JavaExec> {
jvmArgs(
"--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED",
)
}
tasks.withType<JavaCompile> {
sourceCompatibility = JavaVersion.VERSION_11.toString()
targetCompatibility = JavaVersion.VERSION_11.toString()
options.release.set(11)
}
// Configure KSP tasks to use the same JVM target
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
freeCompilerArgs.add("-Xjdk-release=11")
}
}