如何对PyArrow ChunkedArray进行移位操作得到指定数组?
实现步骤与代码
我们可以通过展平数组、截取元素、拼接空值三个步骤得到目标数组,具体操作如下:
完整代码示例
import pyarrow as pa ca = pa.chunked_array([[1,3, 2], [5, 2, 1]]) # 1. 展平分块数组为连续数组 flattened_arr = ca.flatten() # 2. 去掉最后一个元素 trimmed_arr = flattened_arr[:-1] # 3. 拼接开头的None值(保证类型兼容空值) target_arr = pa.concat_arrays([pa.scalar(None, type=trimmed_arr.type), trimmed_arr]) print(target_arr) # 输出结果: # [ # null, # 1, # 3, # 2, # 5, # 2 # ] # Int64Array
关键操作说明
- 展平数组:
ca.flatten()将分块数组合并为单个连续的Arrow数组,原分块数组展平后得到[1, 3, 2, 5, 2, 1]。 - 截取元素:
flattened_arr[:-1]直接截取除最后一个元素外的所有内容,得到[1, 3, 2, 5, 2]。 - 拼接空值:先创建与目标数组类型匹配的空值标量,再用
pa.concat_arrays()将空值和截取后的数组合并,确保最终数组类型支持空值且元素符合需求。
内容的提问来源于stack exchange,提问作者ignoring_gravity
相关产品推荐
相关产品推荐

