DuckDb - 从 S3 读取镶木地板文件 - 处理分段故障核心转储错误

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

我每天都会在 S3 存储桶中收到数千个具有相同架构的 parquet 文件。我正在使用带有 python3 扩展的 duckdb 来读取所有 parquet 文件以从中获取数据子集。

以下是我正在使用的代码片段:

dtt = [array of datetime values]

for dt in dtt:
    print('processing for date :' + str(dt))
    ddt=dt.date()
    dstr=str(dt)
    yr=dstr[0:4]
    mn=dstr[5:7]
    dy=dstr[8:10]

    rurl = "s3://s3bucket/hind/"+str(yr) +'/'+str(mn)+'/'+str(dy)+'/*.parquet'
    nfdf=duckdb.sql("select maid,date,hour,h3id from read_parquet('" + str(rurl) +"') where h3id In " + str(tuple(uhids))).df()

每个镶木地板文件大小为 25-35 MB。上面的代码有效,但并不总是有效。我收到

Segmentation Fault Core Dumped
错误。此错误没有任何模式,因此我无法确定失败的原因。

我尝试使用各种 AWS 实例类型运行。我发现最稳定的是 m6a.4xlarge 实例。然而,这是非常慢的。当我部署 m6a.24xlarge 或 m6a.48xlarge 时 - 它运行得更快 - 但核心转储错误也出现得非常快。 RAM 或 HDD 空间并不短缺。没有正在运行的并行处理,也没有处理器繁忙。

我使用的是最新版本的 AWS Cli 2.13.25、Python - 3.8.10、ubuntu 22.04。有人可以帮助如何纠正这个问题。如果需要的话,我准备改变方法。

amazon-s3 segmentation-fault parquet duckdb
1个回答
0
投票

来自 DuckDB 实验室的 Carlo。

这看起来与我独立调查的与

httpfs
扩展相关的事情类似,如果这恰好相同,我可能会提供帮助。

你可以粘贴这3个查询的结果吗?

duckdb.sql('PRAGMA platform')
duckdb.sql('PRAGMA version')
duckdb.sql("FROM duckdb_extensions() WHERE extension_name == 'httpfs'")
© www.soinside.com 2019 - 2024. All rights reserved.