在AWS EMR中从S3 IN Pyspark读取大文件时出现S3AbortableInputStream警告

时间:2018-02-07 16:21:22

标签: apache-spark pyspark

在Pyspark中从S3读取大型数据集时,我在AWS EMR上一直收到此错误。

INFO FileScanRDD: Reading File path: s3a://bucket/dir1/dir2/dir3/2018-01-31/part-XXX-YYYY-c000.snappy.parquet, 
range: 0-11383, partition values: [empty row]

WARN S3AbortableInputStream: Not all bytes were read from the S3ObjectInputStream, aborting HTTP connection. 
This is likely an error and may result in sub-optimal behavior. 
Request only the bytes you need via a ranged GET or drain the input stream after use.

阅读相当标准:

df = spark.read.parquet(s3_path)

之前有没有人遇到此错误?有什么建议 ? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个警告,而不是错误,因为它显示WARN。您可以放心地忽略该警告或尝试升级到Hadoop 2.9或3.0以摆脱它。

AWS Java SDK会抛出警告,因为Hadoop有意在早期中止读取操作。 (看起来你正在使用s3a://,因此Spark通过Hadoop与S3进行交互。)

您可以从使用S3A的Hadoop提交者和AWS Java SDK维护者之间的this discussion了解有关此警告的更多信息。 HADOOP-14890表示如果您使用的是使用较新版AWS SDK的Hadoop 2.9或3.0,警告就会消失。