You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Python][C++] pyarrow parquet writer - missing time logical type #32766
David Li / @lidavidm:
I'm not really familiar for the Parquet reader, so I was following this more out of interest. If you don't get a reply here, maybe try users@arrow.apache.org? I don't see anything in the docs about this, it seems the logical type should be set appropriately.
I don't think this is a bug in the writer. time64[ns] has been written with the Parquet TIME(NANOS) logical type since ARROW-6077 (pyarrow 0.15, 2019), and this is covered in arrow_schema_test.cc and arrow_reader_writer_test.cc. On pyarrow 24.0.0:
What the report is showing is an Avro-style schema dump (parquet-mr / parquet-tools), and that converter works from the legacy ConvertedType, not the newer LogicalType. Parquet only has TIME_MILLIS and TIME_MICROS converted types; there is no TIME_NANOS, so a TIME(NANOS) column has no ConvertedType to fall back to and the tool prints a bare long. The other columns in the same dump confirm this: DATE shows logicalType: date and TIMESTAMP shows timestamp-micros because those do have ConvertedType equivalents.
If you need legacy readers to see the annotation, write the column as time64[us] (which maps to TIME_MICROS) rather than nanoseconds. Note that since 22.0.0 (#47316) TIME_MICROS is only emitted when write_time_adjusted_to_utc=True, because the legacy converted types imply UTC semantics.
@thisisnic, @rok I think this can be closed as not a bug (behaviour of parquet-mr's Avro schema converter, not the Arrow writer).
Note: I used Claude Code to help research this, but I read the ticket, the code and the linked commits myself and the conclusion here is mine, not the tool's.
Activity
asfimport commentedon Aug 26, 2022
Vadim Goy:
@lidavidm , can I get any update? Maybe need something additional from my side?
asfimport commentedon Aug 29, 2022
David Li / @lidavidm:
I'm not really familiar for the Parquet reader, so I was following this more out of interest. If you don't get a reply here, maybe try users@arrow.apache.org? I don't see anything in the docs about this, it seems the logical type should be set appropriately.
apacheGH-32766: [CI][C++] Use ARROW_CMAKE_ARGS not CMAKE_ARGS
GH-37266: [CI][C++] Use ARROW_CMAKE_ARGS not CMAKE_ARGS (#37272)
rok commentedon Aug 22, 2023
@pitrou was this being marked as completed by #37272 intended?
pitrou commentedon Aug 22, 2023
@rok Oops, no, it seems something misbehaved here. Let me undo this.
mapleFU commentedon Aug 22, 2023
Is this still unfixed?
and schema of "example.parquet" is:
How can I reproduce this issue?
apacheGH-37266: [CI][C++] Use ARROW_CMAKE_ARGS not CMAKE_ARGS (apache…
stackedsax commentedon Oct 4, 2026
I don't think this is a bug in the writer.
time64[ns]has been written with the ParquetTIME(NANOS)logical type since ARROW-6077 (pyarrow 0.15, 2019), and this is covered inarrow_schema_test.ccandarrow_reader_writer_test.cc. On pyarrow 24.0.0:What the report is showing is an Avro-style schema dump (parquet-mr / parquet-tools), and that converter works from the legacy ConvertedType, not the newer LogicalType. Parquet only has
TIME_MILLISandTIME_MICROSconverted types; there is noTIME_NANOS, so aTIME(NANOS)column has no ConvertedType to fall back to and the tool prints a barelong. The other columns in the same dump confirm this:DATEshowslogicalType: dateandTIMESTAMPshowstimestamp-microsbecause those do have ConvertedType equivalents.If you need legacy readers to see the annotation, write the column as
time64[us](which maps toTIME_MICROS) rather than nanoseconds. Note that since 22.0.0 (#47316)TIME_MICROSis only emitted whenwrite_time_adjusted_to_utc=True, because the legacy converted types imply UTC semantics.@thisisnic, @rok I think this can be closed as not a bug (behaviour of parquet-mr's Avro schema converter, not the Arrow writer).
Note: I used Claude Code to help research this, but I read the ticket, the code and the linked commits myself and the conclusion here is mine, not the tool's.
adamreeve commentedon Oct 13, 2026
Thanks for the investigation @stackedsax, I agree this can be closed as not a bug.