Parquet/Avro/CSV 用例

问题描述 投票:0回答:0

我们有一些 csv 格式如下

hash_id c1 c2 c3

其中

hash_id
是一个
string
c1
c2
c3
是整数列表,0 或 1。 理想情况下,我们希望将其编码为一个 numpy 数组,因为我们正在对这些列执行一些按位运算。 现在,我们将文件存储为
csv
,将数组编码为字符串并使用
literal_eval
恢复格式。然而,这真的很慢。 此外,我们面临的另一个挑战是对该文件的操作应该是可扩展的,因此我们只在内存中收取一个块。我们正在使用文件系统(类似于
HDFS
)来执行此操作,其中文件被映射到多个节点。

基本上,现在我们正在使用

csv
并读取块,执行操作并获得结果。 这些操作是对
hash_id
的搜索,检索一行,并在所有行之间执行按位运算(例如
c1 xor c2 xor c3
)并获得最接近上一个检索行的行。

是否有任何建议的格式更适合这个?如果是,如何?我们可以存储和检索 numpy 格式的数据吗?最后,有什么建议以块的形式执行操作(理想情况下,在某些时候数据不适合内存)?

python hdfs parquet avro
© www.soinside.com 2019 - 2024. All rights reserved.