The function create_group_by_value converts logical type LargeUtf8 into GroupByScalar::Utf8. IMO it should be GroupByScalar::LargeUtf8.
I spotted this while trying arrow2, which is more restrict in how datatypes are handled, not allowing invalid datatypes on arrays.