Skip to content
5 changes: 4 additions & 1 deletion pandas/core/arrays/string_arrow.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,10 @@ def __init__(self, values) -> None:
super().__init__(values)
self._dtype = StringDtype(storage="pyarrow")

if not pa.types.is_string(self._pa_array.type):
if not pa.types.is_string(self._pa_array.type) and not (
pa.types.is_dictionary(self._pa_array.type)
and pa.types.is_string(self._pa_array.type.value_type)
):
raise ValueError(
"ArrowStringArray requires a PyArrow (chunked) array of string type"
)
Expand Down
1 change: 0 additions & 1 deletion pandas/io/parquet.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ def write(
from_pandas_kwargs["preserve_index"] = index

table = self.api.Table.from_pandas(df, **from_pandas_kwargs)

path_or_handle, handles, filesystem = _get_path_or_handle(
path,
filesystem,
Expand Down