【发布时间】:2021-04-26 21:35:13
【问题描述】:
我需要从自定义二进制文件(使用多处理和随机访问)中读取大量数据,以便执行计算并存储到 parquet 数据集。 我知道列数,但我不知道要存储的项目数。
因此,文件被切割成N逻辑部分,每个部分都是由块读取器功能处理的。
所以我应该进入这些函数:
- 使用python类型
List创建x列(通过追加动态分配)并在块的末尾创建一个记录批? - 与 (1) 相同,但每个
y记录创建一个记录批次。这里我们按批次控制商品的数量。这个过程可能会更慢,因为我们必须在每次迭代中设置一个条件 (if no_items == y:…) - 从 (1) 开始,最后将记录批次存储到
RecordBatchStreamWriter以返回缓冲区 - 从 (2) 开始,最后将记录批次存储到
RecordBatchStreamWriter以返回缓冲区 - 其他……
我读过ipc、memory、arrow-streaming-columnar,但仍不清楚如何处理巨大的随机访问文件。
感谢您的见解
【问题讨论】:
标签: python pyspark parquet pyarrow apache-arrow