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

Function test_write_dataset_parquet

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

Source from the content-addressed store, hash-verified

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