snowflake-connector-python[pandas] write_pandas 在表中创建重复记录

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

我正在尝试将数据复制到 AWS Lambda 上的雪花中。我现在遇到的情况是,我的数据帧中没有重复项。我通过检查我的数据框来验证这一点,如下所示:

df.duplicated().any()
并验证它是否返回
False

然后,我通过过滤数据框中的唯一值来进行双重检查

df[df["myColumn"] == "uniqueValue"]
,我得到 1 个结果。

然后我运行以下命令:

write_pandas(
            conn=con,
            df=df,
            table_name=table_name,
            database=database,
            schema=schema,
            chunk_size=chunk_size,
            quote_identifiers=False,
        )

然后当数据到达 Snowflake 表并查询它时,SF 数据库中每行有 5 个。

我验证了这个函数也只运行一次。

为什么我得到 5 个重复项?

编辑 好的,所以我意识到它与这个包无关。问题是 1 分钟后 lambda 再次被触发,然后 1 分钟后再次触发,依此类推,直到被触发 5 次。

不知道为什么它会被多次触发,因为所有执行最终都会成功,但在第一个执行实际完成之前有 5 个正在运行

更新

已验证不是内存问题,也不是超时问题。

我注意到,当进行 API 调用来检索某些外部数据时,似乎会触发下一个 lambda。不知道为什么这会起作用,但它似乎正在影响它。

此外,它没有设置为 5 次,它只会每分钟重新触发一次,直到第一个 lambda 执行完成。我可以看到日志在 API 调用开始时停止,并且在同一日志标记处我看到下一个 lambda 执行开始。

python pandas aws-lambda snowflake-cloud-data-platform
1个回答
0
投票

我不确定这是否是 Jenkins 特定的问题,但我发现我正在同步调用该函数,1 分钟后,如果 lambda 没有响应,那么它会再次触发它......运行使用

invoke-async
cli 选项而不是
invoke
会导致重复停止。

© www.soinside.com 2019 - 2024. All rights reserved.