出现此错误是因为PyArrow无法从给定的Python值推断出正确的Arrow数据类型。需要手动指定数据类型。例如:
import numpy as np
import pyarrow as pa
# 指定数据类型
point_type = pa.struct([pa.field('x', pa.int64()),
pa.field('y', pa.int64())])
# 创建示例数据
point = np.array([(266000, 4016000)],
dtype=[('x', 'i8'), ('y', 'i8')])
# 将数据转换为Arrow格式
arrow_point = pa.RecordBatch.from_arrays([pa.array(point['x']),
pa.array(point['y'])],
names=['x', 'y'])
在上面的代码示例中,我们手动指定了数据类型为Point。然后,我们创建了一个包含示例数据的NumPy数组,并使用PyArrow将其转换为Arrow格式。通过手动指定数据类型,我们避免了出现Arrow数据类型推断错误的问题。