You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Joris Van den Bossche (Jira)" <ji...@apache.org> on 2020/10/22 09:42:00 UTC

[jira] [Updated] (ARROW-10123) [Python] `parquet.read_table` fails when `BytesIO` buffer is given as source

     [ https://issues.apache.org/jira/browse/ARROW-10123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joris Van den Bossche updated ARROW-10123:
------------------------------------------
    Summary: [Python] `parquet.read_table` fails when `BytesIO` buffer is given as source  (was: `parquet.read_table` fails when `BytesIO` buffer is given as source)

> [Python] `parquet.read_table` fails when `BytesIO` buffer is given as source
> ----------------------------------------------------------------------------
>
>                 Key: ARROW-10123
>                 URL: https://issues.apache.org/jira/browse/ARROW-10123
>             Project: Apache Arrow
>          Issue Type: Bug
>    Affects Versions: 1.0.1
>         Environment: OS: Ubuntu 20.04
> Pyarrow version: 1.0.1
> arrow cpp: 1.0.1
>            Reporter: Prem Sagar Gali
>            Priority: Major
>
> `pyarrow.parquet.write_table` writes correctly to a `BytesIO` object. But when the same buffer is sent to `pyarrow.parquet.read_table` there is an error.
>  
> {code:python}
> In[28]: import pyarrow as pa
> In[29]: pa.table({"a":[1, 2, 3]})
> Out[29]: 
> pyarrow.Table
> a: int64
> In[30]: table = pa.table({"a":[1, 2, 3]})
> In[31]: table
> Out[31]: 
> pyarrow.Table
> a: int64
> In[32]: table['a']
> Out[32]: 
> <pyarrow.lib.ChunkedArray object at 0x7f4a25cce290>
> [
>   [
>     1,
>     2,
>     3
>   ]
> ]
> In[33]: import io
> In[34]: f = io.BytesIO()
> In[35]: pa.parquet.write_table(table, f)
> In[36]: f.seek(0)
> Out[36]: 0
> In[37]: file_buffer = f.read()
> In[38]: file_buffer
> Out[38]: b'PAR1\x15\x04\x150\x15.L\x15\x06\x15\x04\x12\x00\x00\x18\x04\x01\x00\t\x01<\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x15\x00\x15\x14\x15\x18,\x15\x06\x15\x04\x15\x06\x15\x06\x1c\x18\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x16\x00(\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n$\x02\x00\x00\x00\x06\x01\x02\x03$\x00&\xe4\x01\x1c\x15\x04\x195\x04\x00\x06\x19\x18\x01a\x15\x02\x16\x06\x16\xda\x01\x16\xdc\x01&R&\x08\x1c\x18\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x16\x00(\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19,\x15\x04\x15\x04\x15\x02\x00\x15\x00\x15\x04\x15\x02\x00\x00\x00\x15\x02\x19,5\x00\x18\x06schema\x15\x02\x00\x15\x04%\x02\x18\x01a\x00\x16\x06\x19\x1c\x19\x1c&\xe4\x01\x1c\x15\x04\x195\x04\x00\x06\x19\x18\x01a\x15\x02\x16\x06\x16\xda\x01\x16\xdc\x01&R&\x08\x1c\x18\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x16\x00(\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19,\x15\x04\x15\x04\x15\x02\x00\x15\x00\x15\x04\x15\x02\x00\x00\x00\x16\xdc\x01\x16\x06&\xe4\x01\x16\xdc\x01\x14\x00\x00\x19\x1c\x18\x0cARROW:schema\x18\xac\x01/////3gAAAAQAAAAAAAKAAwABgAFAAgACgAAAAABBAAMAAAACAAIAAAABAAIAAAABAAAAAEAAAAUAAAAEAAUAAgABgAHAAwAAAAQABAAAAAAAAECJAAAABQAAAAEAAAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAAAQAAAGEAAAA=\x00\x18"parquet-cpp version 1.5.1-SNAPSHOT\x19\x1c\x1c\x00\x00\x00r\x01\x00\x00PAR1'
> In[40]: pa.parquet.read_table(file_buffer)
> Exception ignored in: 'pyarrow._dataset._make_file_source'
> TypeError: cannot construct a FileSource from b'PAR1\x15\x04\x150\x15.L\x15\x06\x15\x04\x12\x00\x00\x18\x04\x01\x00\t\x01<\x02\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x15\x00\x15\x14\x15\x18,\x15\x06\x15\x04\x15\x06\x15\x06\x1c\x18\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x16\x00(\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n$\x02\x00\x00\x00\x06\x01\x02\x03$\x00&\xe4\x01\x1c\x15\x04\x195\x04\x00\x06\x19\x18\x01a\x15\x02\x16\x06\x16\xda\x01\x16\xdc\x01&R&\x08\x1c\x18\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x16\x00(\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19,\x15\x04\x15\x04\x15\x02\x00\x15\x00\x15\x04\x15\x02\x00\x00\x00\x15\x02\x19,5\x00\x18\x06schema\x15\x02\x00\x15\x04%\x02\x18\x01a\x00\x16\x06\x19\x1c\x19\x1c&\xe4\x01\x1c\x15\x04\x195\x04\x00\x06\x19\x18\x01a\x15\x02\x16\x06\x16\xda\x01\x16\xdc\x01&R&\x08\x1c\x18\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x16\x00(\x08\x03\x00\x00\x00\x00\x00\x00\x00\x18\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x19,\x15\x04\x15\x04\x15\x02\x00\x15\x00\x15\x04\x15\x02\x00\x00\x00\x16\xdc\x01\x16\x06&\xe4\x01\x16\xdc\x01\x14\x00\x00\x19\x1c\x18\x0cARROW:schema\x18\xac\x01/////3gAAAAQAAAAAAAKAAwABgAFAAgACgAAAAABBAAMAAAACAAIAAAABAAIAAAABAAAAAEAAAAUAAAAEAAUAAgABgAHAAwAAAAQABAAAAAAAAECJAAAABQAAAAEAAAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAAAQAAAGEAAAA=\x00\x18"parquet-cpp version 1.5.1-SNAPSHOT\x19\x1c\x1c\x00\x00\x00r\x01\x00\x00PAR1'
> Traceback (most recent call last):
>   File "/home/pgali/anaconda3/envs/cudf_dev/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3417, in run_code
>     exec(code_obj, self.user_global_ns, self.user_ns)
>   File "<ipython-input-40-0e57dd61ae16>", line 1, in <module>
>     pa.parquet.read_table(file_buffer)
>   File "/home/pgali/anaconda3/envs/cudf_dev/lib/python3.7/site-packages/pyarrow/parquet.py", line 1573, in read_table
>     ignore_prefixes=ignore_prefixes,
>   File "/home/pgali/anaconda3/envs/cudf_dev/lib/python3.7/site-packages/pyarrow/parquet.py", line 1411, in __init__
>     [fragment], schema=fragment.physical_schema,
>   File "pyarrow/_dataset.pyx", line 694, in pyarrow._dataset.Fragment.physical_schema.__get__
>   File "pyarrow/error.pxi", line 122, in pyarrow.lib.pyarrow_internal_check_status
>   File "pyarrow/error.pxi", line 84, in pyarrow.lib.check_status
> pyarrow.lib.ArrowInvalid: Called Open() on an uninitialized FileSource
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)