df 上的雅典娜写操作失败:神秘行为

时间:2021-03-30 13:42:17

标签: python pandas amazon-athena pyathena

我正在尝试将 pandas 数据帧写入 Athena DB。

preds 是一个有 2590 行的 DF。

preds.to_sql('ds_forecast_results', ath_engine, schema=ath_info_['schema_name'], index=False, if_exists='append', method='multi')

失败并出现以下错误

ERROR:pyathena.common:Failed to execute query.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/pyathena/common.py", line 250, in _execute
    **request
  [...]
  File "/usr/local/lib/python3.7/dist-packages/botocore/client.py", line 626, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidRequestException: An error occurred (InvalidRequestException) when calling the StartQueryExecution operation: 1 validation error detected: Value 'INSERT INTO [...]

接下来的输出显示了 DF 的所有行,所以它不是很有帮助

有趣的是通过拆分 DF 我没有这样的问题

preds_a = preds[0:1000]
preds_a.to_sql('ds_forecast_results', ath_engine, schema=ath_info_['schema_name'], index=False, if_exists='append', method='multi')
preds_b = preds[1000:]
preds_b.to_sql('ds_forecast_results', ath_engine, schema=ath_info_['schema_name'], index=False, if_exists='append', method='multi')

这怎么可能?如果有一个有问题的行,就不可能写出两个 DF。

0 个答案:

没有答案