Dmitry Kalinkin created ARROW-2571: -------------------------------------- Summary: [C++] Lz4Codec doesn't properly handle empty data Key: ARROW-2571 URL: https://issues.apache.org/jira/browse/ARROW-2571 Project: Apache Arrow Issue Type: Bug Reporter: Dmitry Kalinkin
For example a following closure test will fail: {code:python} import pyarrow as pa import pyarrow.parquet as pq data = [pa.array([None] * 10)] batch = pa.RecordBatch.from_arrays(data, ['x']) table = pa.Table.from_batches([batch]) pq.write_table(table, "test.parquet", compression='LZ4') table = pq.read_table("test.parquet") {code} with a following error {code:java} Traceback (most recent call last): File "test.py", line 8, in <module> table = pq.read_table("test.parquet") File "python3.6/site-packages/pyarrow/parquet.py", line 987, in read_table use_pandas_metadata=use_pandas_metadata) File "python3.6/site-packages/pyarrow/parquet.py", line 149, in read nthreads=nthreads) File "_parquet.pyx", line 736, in pyarrow._parquet.ParquetReader.read_all File "error.pxi", line 83, in pyarrow.lib.check_status pyarrow.lib.ArrowIOError: Arrow error: IOError: Corrupt Lz4 compressed data. {code} Writing file from with LZ4 from python requires patch for ARROW-2570. But the issue can be reproduced by creating an input file with parquet-cpp. The file must be compressed with LZ4 and contain a column with only gap values. -- This message was sent by Atlassian JIRA (v7.6.3#76005)