Christian Thiel created ARROW-4538:
--------------------------------------
Summary: pa.Table.from_pandas() with df.index.name != None breaks
write_to_dataset()
Key: ARROW-4538
URL: https://issues.apache.org/jira/browse/ARROW-4538
Project: Apache Arrow
Issue Type: Bug
Components: Python
Affects Versions: 0.12.0
Reporter: Christian Thiel
When using {{pa.Table.from_pandas()}} with preserve_index=True and
dataframe.index.name!=None the prefix {{__index_level_}} is not added to the
respective schema name. This breaks {{write_to_dataset}} with active partition
columns.
{code:python}
import pyarrow as pa
import pyarrow.parquet as pq
import os
import shutil
import pandas as pd
import numpy as np
PATH_PYARROW_MANUAL = '/tmp/pyarrow_manual.pa/'
if os.path.exists(PATH_PYARROW_MANUAL):
shutil.rmtree(PATH_PYARROW_MANUAL)
os.mkdir(PATH_PYARROW_MANUAL)
arrays = np.array([np.array([0, 1, 2]), np.array([3, 4]), np.nan, np.nan])
df = pd.DataFrame([0, 0, 1, 1], columns=['partition_column'])
df['arrays'] = pd.Series(arrays)
df.index.name='ID'
table = pa.Table.from_pandas(df, preserve_index=True)
print(table.schema.names)
pq.write_to_dataset(table, root_path=PATH_PYARROW_MANUAL,
partition_cols=['partition_column'],
preserve_index=True
)
{code}
Removing {{df.index.name='ID'}} works. Also disabling {{partition_cols}} in
{{write_to_dataset}} works.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)