@@ -265,9 +265,9 @@ class ParquetFile:
265265 page_checksum_verification : bool, default False
266266 If True, verify the checksum for each page read from the file.
267267 arrow_extensions_enabled : bool, default True
268- If True, read Parquet logical types as Arrow extension types where possible,
269- (e.g., read JSON as the canonical `arrow.json` extension type or UUID as
270- the canonical `arrow.uuid` extension type).
268+ If True, read Parquet logical types as Arrow extension types where
269+ possible (e.g., read JSON as the canonical `arrow.json` extension type
270+ or UUID as the canonical `arrow.uuid` extension type).
271271
272272 Examples
273273 --------
@@ -2372,7 +2372,7 @@ def write_metadata(schema, where, metadata_collector=None, filesystem=None,
23722372
23732373
23742374def read_metadata (where , memory_map = False , decryption_properties = None ,
2375- filesystem = None ):
2375+ filesystem = None , arrow_extensions_enabled = True ):
23762376 """
23772377 Read FileMetaData from footer of a single Parquet file.
23782378
@@ -2387,6 +2387,10 @@ def read_metadata(where, memory_map=False, decryption_properties=None,
23872387 If nothing passed, will be inferred based on path.
23882388 Path will try to be found in the local on-disk filesystem otherwise
23892389 it will be parsed as an URI to determine the filesystem.
2390+ arrow_extensions_enabled : bool, default True
2391+ If True, read Parquet logical types as Arrow extension types where
2392+ possible (e.g. UUID as the canonical `arrow.uuid` extension type).
2393+ If False, use the underlying storage types instead.
23902394
23912395 Returns
23922396 -------
@@ -2416,13 +2420,17 @@ def read_metadata(where, memory_map=False, decryption_properties=None,
24162420 file_ctx = where = filesystem .open_input_file (where )
24172421
24182422 with file_ctx :
2419- file = ParquetFile (where , memory_map = memory_map ,
2420- decryption_properties = decryption_properties )
2423+ file = ParquetFile (
2424+ where ,
2425+ memory_map = memory_map ,
2426+ decryption_properties = decryption_properties ,
2427+ arrow_extensions_enabled = arrow_extensions_enabled ,
2428+ )
24212429 return file .metadata
24222430
24232431
24242432def read_schema (where , memory_map = False , decryption_properties = None ,
2425- filesystem = None ):
2433+ filesystem = None , arrow_extensions_enabled = True ):
24262434 """
24272435 Read effective Arrow schema from Parquet file metadata.
24282436
@@ -2437,6 +2445,9 @@ def read_schema(where, memory_map=False, decryption_properties=None,
24372445 If nothing passed, will be inferred based on path.
24382446 Path will try to be found in the local on-disk filesystem otherwise
24392447 it will be parsed as an URI to determine the filesystem.
2448+ arrow_extensions_enabled : bool, default True
2449+ If True, read Parquet logical types as Arrow extension types where
2450+ possible (e.g., UUID as the canonical `arrow.uuid` extension type).
24402451
24412452 Returns
24422453 -------
@@ -2462,9 +2473,12 @@ def read_schema(where, memory_map=False, decryption_properties=None,
24622473
24632474 with file_ctx :
24642475 file = ParquetFile (
2465- where , memory_map = memory_map ,
2466- decryption_properties = decryption_properties )
2467- return file .schema .to_arrow_schema ()
2476+ where ,
2477+ memory_map = memory_map ,
2478+ decryption_properties = decryption_properties ,
2479+ arrow_extensions_enabled = arrow_extensions_enabled ,
2480+ )
2481+ return file .schema_arrow
24682482
24692483
24702484__all__ = (
0 commit comments