admin管理员组

文章数量:1384812

I got data in pq like this:

>>> df = duckdb.sql(f"SELECT * FROM parquet_schema('{file}')")
>>> df
┌─────────────────┬───────────┬────────────┬─────────────┬─────────────────┬──────────────┬────────────────┬───────┬───────────┬──────────┬──────────────┐
│    file_name    │    name   │    type    │ type_length │ repetition_type │ num_children │ converted_type │ scale │ precision │ field_id │ logical_type │
│     varchar     │  varchar  │  varchar   │   varchar   │     varchar     │    int64     │    varchar     │ int64 │   int64   │  int64   │   varchar    │
├─────────────────┼───────────┼────────────┼─────────────┼─────────────────┼──────────────┼────────────────┼───────┼───────────┼──────────┼──────────────┤
│ /ral/reda/Ru-…  │ schema    │ NULL       │ NULL        │ REQUIRED        │           13 │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ t         │ BYTE_ARRAY │ NULL        │ OPTIONAL        │         NULL │ UTF8           │  NULL │      NULL │     NULL │ StringType() │
│ /ral/reda/Ru-…  │ p         │ INT64      │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ L         │ DOUBLE     │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ X         │ DOUBLE     │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ G         │ DOUBLE     │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ cl        │ INT64      │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ js        │ DOUBLE     │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ r         │ INT64      │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ e         │ INT64      │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ r_id      │ BYTE_ARRAY │ NULL        │ OPTIONAL        │         NULL │ UTF8           │  NULL │      NULL │     NULL │ StringType() │
│ /ral/reda/Ru-…  │ b_id      │ BYTE_ARRAY │ NULL        │ OPTIONAL        │         NULL │ UTF8           │  NULL │      NULL │     NULL │ StringType() │
│ /ral/reda/Ru-…  │ t_id      │ INT64      │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
│ /ral/reda/Ru-…  │ e_id      │ INT64      │ NULL        │ OPTIONAL        │         NULL │ NULL           │  NULL │      NULL │     NULL │ NULL         │
├─────────────────┴───────────┴────────────┴─────────────┴─────────────────┴──────────────┴────────────────┴───────┴───────────┴──────────┴──────────────┤
│ 14 rows                                                                                                                                     11 columns │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
>>> duckdb.sql(f"SELECT COUNT(*) FROM read_parquet('{file}')")
┌──────────────┐
│ count_star() │
│    int64     │
├──────────────┤
│     74614848 │
└──────────────┘

It's about 1005M on disk.

Is it worth going back and setting the BYTE_ARRAYs to ENUM fields (is that even supported?) Some of my columns only have a single value

本文标签: pandasOptimizing Parquet for storage spaceStack Overflow