

apache pyarrowを使って任意のファイルをバイナリ形式で読み込み  
そのバイナリをlistにつめてparquet形式で出力するということをやっています。  
以下のソースで検証しているのですが、parquet形式で出力すると  
ファイルサイズが元のファイルの7倍になります。  
テキストファイルで出力したファイルを開いてみると、データは無圧縮状態のようで  
圧縮がかかっていません。  
なんとか圧縮をかけることはできないでしょうか？

[code]

    # -*- coding: utf-8 -*-
    import pyarrow as pa
    import pyarrow.parquet as pq
    
    open_data_path = "test_log_70mb.txt"
    file_list = []
    with open(open_data_path, 'rb') as f:
        data = bytes(f.read())
        file_list.append(data)
    
    pa_data = [
        pa.array(file_list)
    ]
    
    pa_batch = pa.RecordBatch.from_arrays(pa_data, ["file_list"])
    table = pa.Table.from_batches([pa_batch])
    pq.write_table(table, "./test_parquet", compression="gzip")
    
[/code]

結果

[code]

    total 71734
    -rwxrwxrwx 1 vagrant vagrant      423 Aug 25 02:05 test2.py
    -rwxrwxrwx 1 vagrant vagrant 73454817 Aug 25 02:05 test_log_70mb.txt
    vagrant@apex01:/vagrant/arrow_test$ python test2.py
    vagrant@apex01:/vagrant/arrow_test$ ls -l
    total 511880
    -rwxrwxrwx 1 vagrant vagrant       423 Aug 25 02:05 test2.py
    -rwxrwxrwx 1 vagrant vagrant  73454817 Aug 25 02:05 test_log_70mb.txt
    -rwxrwxrwx 1 vagrant vagrant 450709316 Aug 25 02:05 test_parquet
    
[/code]

環境  
python 2.7  
pyarrow 0.6.0


CC BY-SA 3.0
2017-08-25T02:16:40.037
37477
2022-04-09T12:06:30.597
25032
question
python apache
parquet形式で出力するとファイルサイズが増大する

[code]

    compression = 'snappy'
    
[/code]

はどうですか？


CC BY-SA 4.0
2017-09-28T13:58:15.043
38272
2020-03-03T15:10:29.650
2020-03-03T15:10:29.650
32986
25585
37477
answer