| 4863 | |
| 4864 | |
| 4865 | def test_write_scanner(tempdir, dataset_reader): |
| 4866 | table = pa.table([ |
| 4867 | pa.array(range(20)), pa.array(random.random() for _ in range(20)), |
| 4868 | pa.array(['a'] * 10 + ['b'] * 10) |
| 4869 | ], names=["f1", "f2", "part"]) |
| 4870 | dataset = ds.dataset(table) |
| 4871 | |
| 4872 | base_dir = tempdir / 'dataset_from_scanner' |
| 4873 | ds.write_dataset(dataset_reader.scanner( |
| 4874 | dataset), base_dir, format="feather") |
| 4875 | result = dataset_reader.to_table(ds.dataset(base_dir, format="ipc")) |
| 4876 | assert result.equals(table) |
| 4877 | |
| 4878 | # scanner with different projected_schema |
| 4879 | base_dir = tempdir / 'dataset_from_scanner2' |
| 4880 | ds.write_dataset(dataset_reader.scanner(dataset, columns=["f1"]), |
| 4881 | base_dir, format="feather") |
| 4882 | result = dataset_reader.to_table(ds.dataset(base_dir, format="ipc")) |
| 4883 | assert result.equals(table.select(["f1"])) |
| 4884 | |
| 4885 | # schema not allowed when writing a scanner |
| 4886 | with pytest.raises(ValueError, match="Cannot specify a schema"): |
| 4887 | ds.write_dataset(dataset_reader.scanner(dataset), base_dir, |
| 4888 | schema=table.schema, format="feather") |
| 4889 | |
| 4890 | |
| 4891 | def test_write_table_partitioned_dict(tempdir): |