Repository: modin-project/modin

Issue:
read_parquet  : pyarrow.lib.ArrowInvalid: Field named 'item' not found
### System information
ubuntu 20.04
Python 3.8.5
modin 0.8.2

```python
import modin.pandas as pd

def test_get_dataframe():
    test_df = pd.DataFrame({
        'col1': [['ad_1', 'ad_2'], ['ad_3']],
    })

    with tempfile.TemporaryDirectory() as directory:
        path = f'{directory}/data'
        os.makedirs(path)
        Path(f'{path}/_SUCCESS').touch()
        test_df.to_parquet(path + '/part-00000.parquet')
        read_df = pd.read_parquet(path)
        pandas.testing.assert_frame_equal(test_df, read_df)
```

throw 

`E   pyarrow.lib.ArrowInvalid: Field named 'item' not found or not unique in the schema.
`

It work well if you replace import `modin.pandas as pd `by import `pandas as pd`


Discussion:

Resolving patch:
diff --git a/modin/engines/base/io/column_stores/parquet_dispatcher.py b/modin/engines/base/io/column_stores/parquet_dispatcher.py
--- a/modin/engines/base/io/column_stores/parquet_dispatcher.py
+++ b/modin/engines/base/io/column_stores/parquet_dispatcher.py
@@ -80,14 +80,14 @@ def _read(cls, path, engine, columns, **kwargs):
                 # Path of the sample file that we will read to get the remaining columns
                 pd = ParquetDataset(path)
                 meta = pd.metadata
-                column_names = pd.schema.names
+                column_names = pd.schema.to_arrow_schema().names
             elif isinstance(path, str) and path.startswith("hdfs://"):
                 import fsspec.core
 
                 fs, path = fsspec.core.url_to_fs(path)
                 pd = ParquetDataset(path, filesystem=fs)
                 meta = pd.metadata
-                column_names = pd.schema.names
+                column_names = pd.schema.to_arrow_schema().names
             elif isinstance(path, s3fs.S3File) or (
                 isinstance(path, str) and path.startswith("s3://")
             ):
@@ -103,10 +103,10 @@ def _read(cls, path, engine, columns, **kwargs):
                     fs = s3fs.S3FileSystem(anon=True)
                     pd = ParquetDataset(path, filesystem=fs)
                 meta = pd.metadata
-                column_names = pd.schema.names
+                column_names = pd.schema.to_arrow_schema().names
             else:
                 meta = ParquetFile(path).metadata
-                column_names = meta.schema.names
+                column_names = meta.schema.to_arrow_schema().names
 
             if meta is not None and meta.metadata is not None:
                 pandas_metadata = meta.metadata.get(b"pandas", None)


Test patch:
diff --git a/modin/pandas/test/test_io.py b/modin/pandas/test/test_io.py
--- a/modin/pandas/test/test_io.py
+++ b/modin/pandas/test/test_io.py
@@ -1205,6 +1205,21 @@ def test_to_parquet(self):
             extension="parquet",
         )
 
+    def test_read_parquet_2462(self):
+        test_df = pd.DataFrame(
+            {
+                "col1": [["ad_1", "ad_2"], ["ad_3"]],
+            }
+        )
+
+        with tempfile.TemporaryDirectory() as directory:
+            path = f"{directory}/data"
+            os.makedirs(path)
+            test_df.to_parquet(path + "/part-00000.parquet")
+            read_df = pd.read_parquet(path)
+
+            df_equals(test_df, read_df)
+
 
 class TestJson:
     @pytest.mark.parametrize("lines", [False, True])