toArrowSchema

fun List<DataColumn<*>>.toArrowSchema(mismatchSubscriber: (ConvertingMismatch) -> Unit = ignoreMismatchMessage): Schema

Create Arrow Schema matching this actual data. Columns with not supported types will be interpreted as String

Note the two ways a date-time column is mapped: a LocalDateTime column becomes Date(MILLISECOND), while an Instant column becomes Timestamp(MICROSECOND, "UTC") — a timestamp with a time zone, which is how Arrow and Parquet mark values already normalized to UTC. Sub-microsecond instants lose their last three digits at that precision, reported as ConvertingMismatch.PrecisionReduced; see DEFAULT_INSTANT_UNIT for why.