Closed
Description
Apache Iceberg Rust version
None
Describe the bug
I was trying to make PyIceberg rely solely on Iceberg-rust for the partition transforms, but I ran into the following:
def _transform(array: "ArrayLike") -> "ArrayLike":
if isinstance(array, pa.Array):
return transform_func(array, *args)
elif isinstance(array, pa.ChunkedArray):
result_chunks = []
for arr in array.iterchunks():
> result_chunks.append(transform_func(arr, *args))
E ValueError: Unexpected => Parser error: Invalid timezone "UTC": only offset based timezones supported without chrono-tz feature
We initialize the datetime
as:
datetime(2023, 12, 31, 0, 0, 0, tzinfo=timezone.utc)
To Reproduce
In test_transform.py
:
def test_year_transform_datetime():
arr = pa.array([
datetime(1970, 1, 1, 0, 0, 0, tzinfo=timezone.utc),
datetime(2000, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
])
result = transform.year(arr)
expected = pa.array([0, 30], type=pa.int32())
assert result == expected
Expected behavior
Able to just parse these. I'm not sure if we need to fix this in Arrow, or if we can import chrono-tz
package.
Willingness to contribute
I cannot contribute a fix for this bug at this time