259b3bbb24
New standalone modules:analytics submodule with two Spark jobs: - OpeningBookJob: reads game_records.pgn, extracts first N plies using pure Catalyst SQL expressions (no UDFs), aggregates win/draw/loss rates per opening sequence, writes Parquet + CSV top-1000 summary. - PlayerStatsJob: unions each game into a player-centric view, aggregates total_games/wins/losses/draws/avg_move_count/win_rate per player_id, writes Parquet. Module uses Scala 3 calling spark-sql_2.13 via JVM binary compatibility (DataFrame API only; no spark.implicits._ / typed Datasets). Spark is compileOnly; the fat jar bundles only scala3-library + postgresql driver. Submit via spark-submit; see build.gradle.kts header for invocation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
656 B
Kotlin
31 lines
656 B
Kotlin
rootProject.name = "NowChessSystems"
|
|
|
|
pluginManagement {
|
|
val quarkusPluginVersion: String by settings
|
|
val quarkusPluginId: String by settings
|
|
repositories {
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
mavenLocal()
|
|
}
|
|
plugins {
|
|
id(quarkusPluginId) version quarkusPluginVersion
|
|
}
|
|
}
|
|
|
|
include(
|
|
"modules:core",
|
|
"modules:api",
|
|
"modules:json",
|
|
"modules:io",
|
|
"modules:rule",
|
|
"modules:security",
|
|
"modules:bot-platform",
|
|
"modules:official-bots",
|
|
"modules:account",
|
|
"modules:ws",
|
|
"modules:store",
|
|
"modules:coordinator",
|
|
"modules:tournament",
|
|
"modules:analytics",
|
|
) |