在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)
之前有没有人遇到此错误?有什么建议 ? 提前谢谢。
答案 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,警告就会消失。