PySpark任务重试成功但无Parquet结果文件、任务成功停止却数据缺失的问题求助
PySpark任务重试成功但无Parquet结果文件、任务成功停止却数据缺失的问题求助
大家好,我最近碰到一个PySpark的棘手问题,想请各位帮忙分析下:
我运行了一个PySpark批处理任务,任务最终显示成功停止了,但等我去检查输出的结果数据时,发现有部分数据缺失了。于是我去翻任务日志,找到了一段异常信息,看起来是某个任务执行失败了,但整个任务却没有报错终止,这就导致对应的数据没写入结果里。
日志里的关键错误内容如下:
TaskSetManager: Lost task 7.0 in stage 5.0 (TID 549) (worker executor 1): org.apache.spark.SparkException: Task failed while writing rows. [2024-11-28, 17:35:34 CST] {subprocess.py:93} INFO - 2024-11-28 17:35:34 - INFO - root - __init__.py:__execute_command:197 - [28755] - at org.apache.spark.sql.errors.QueryExecutionErrors$.taskFailedWhileWritingRowsError(QueryExecutionErrors.scala:500) [2024-11-28, 17:35:34 CST] {subprocess.py:93} INFO - 2024-11-28 17:35:34 - INFO - root - __init__.py:__execute_command:197 - [28755] - at org.apache.spark.sql.execution.datasources.FileFormatWriter$.executeTask(FileFormatWriter.scala:324) [2024-11-28, 17:35:34 CST] {subprocess.py:93} INFO - 2024-11-28 17:35:34 - INFO - root - __init__.py:__execute_command:197 - [28755] - at org.apache.spar...
我现在有几个核心疑问:
- 明明有任务(Task 7.0 in stage 5.0)执行失败并丢失了,为什么整个PySpark任务没有报错退出,反而显示成功完成?
- 丢失的这个任务对应的数据有没有办法找回,或者怎么配置才能让任务在出现这种情况时直接报错终止,避免默默丢失数据?
有没有大佬遇到过类似的情况,或者能给我一些排查方向和解决建议?非常感谢!
备注:内容来源于stack exchange,提问作者Yongdun Liu
相关产品推荐
相关产品推荐

