MCPcopy Create free account
hub / github.com/apache/arrow / test_write_dataset_parquet

Function test_write_dataset_parquet

python/pyarrow/tests/test_dataset.py:4921–4961  ·  view source on GitHub ↗
(tempdir)

Source from the content-addressed store, hash-verified

4919@pytest.mark.numpy
4920@pytest.mark.parquet
4921def test_write_dataset_parquet(tempdir):
4922 table = pa.table([
4923 pa.array(range(20), type="uint32"),
4924 pa.array(np.arange("2012-01-01", 20, dtype="datetime64[D]").astype(
4925 "datetime64[ns]")),
4926 pa.array(np.repeat(['a', 'b'], 10))
4927 ], names=["f1", "f2", "part"])
4928
4929 # using default "parquet" format string
4930
4931 base_dir = tempdir / 'parquet_dataset'
4932 ds.write_dataset(table, base_dir, format="parquet")
4933 # check that all files are present
4934 file_paths = list(base_dir.rglob("*"))
4935 expected_paths = [base_dir / "part-0.parquet"]
4936 assert set(file_paths) == set(expected_paths)
4937 # check Table roundtrip with default version
4938 result = ds.dataset(base_dir, format="parquet").to_table()
4939 assert result.equals(table)
4940
4941 # using custom options
4942 for version in ["1.0", "2.4", "2.6"]:
4943 format = ds.ParquetFileFormat()
4944 opts = format.make_write_options(version=version)
4945 assert "<pyarrow.dataset.ParquetFileWriteOptions" in repr(opts)
4946 base_dir = tempdir / f'parquet_dataset_version{version}'
4947 ds.write_dataset(table, base_dir, format=format, file_options=opts)
4948 meta = pq.read_metadata(base_dir / "part-0.parquet")
4949 expected_version = "1.0" if version == "1.0" else "2.6"
4950 assert meta.format_version == expected_version
4951
4952 # ensure version is actually honored based on supported datatypes
4953 result = ds.dataset(base_dir, format="parquet").to_table()
4954 schema = table.schema
4955 if version == "1.0":
4956 # uint32 is written as int64
4957 schema = schema.set(0, schema.field(0).with_type(pa.int64()))
4958 if version in ("1.0", "2.4"):
4959 schema = schema.set(1, schema.field(1).with_type(pa.timestamp("us")))
4960 expected = table.cast(schema)
4961 assert result.equals(expected)
4962
4963
4964def test_write_dataset_csv(tempdir):

Callers

nothing calls this directly

Calls 9

listFunction · 0.85
equalsMethod · 0.80
ParquetFileFormatMethod · 0.80
read_metadataMethod · 0.80
arrayMethod · 0.45
to_tableMethod · 0.45
setMethod · 0.45
fieldMethod · 0.45
castMethod · 0.45

Tested by

no test coverage detected