java.io.IOException: 在 Pyspark 中写入大文件时流已损坏

java.io.IOException: Stream is corrupted while writing a Big file in Pyspark

我正在从 SQL 服务器读取大约 900 万行的数据,并将其插入到我的数据湖 (Parquet) 中已经存在的 table

此过程处理的数据较少,约为 100 万。

我只对 sql 服务器使用基本读写:

我的 Spark 提交看起来像这样:

我的 Pyspark 配置:

我已经尝试重新分区并将内存增加到 15,但仍然是同样的问题..

java.io.IOException: 流已损坏

抱歉,我无法访问完整日志

当您以这种方式读取数据时,实际上只使用了一个内核,因为 JDBC 连接器在明确配置之前不会自动并行化读取。所以很可能在读取操作期间连接超时。

您需要查看 JDBC connector options,例如 partitionColumnlowerBoundupperBound 等,它们会将读取拆分为多个操作。 (也许还可以查看 fetchsize 等)