Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Kryo序列化失败:缓冲区溢出_Apache Spark_Pyspark_Apache Spark Sql_Amazon Emr - Fatal编程技术网

Apache spark Kryo序列化失败:缓冲区溢出

Apache spark Kryo序列化失败:缓冲区溢出,apache-spark,pyspark,apache-spark-sql,amazon-emr,Apache Spark,Pyspark,Apache Spark Sql,Amazon Emr,我们通过scala中的spark读取S3中小时格式的数据。例如 sparkSession .createDataset(sc .wholeTextFiles(("s3://<Bucket>/<key>/<yyyy>/<MM>/<dd>/<hh>/*")) .values .flatMap(x=> {x .replace("\n", "") .replac

我们通过scala中的spark读取S3中小时格式的数据。例如

 sparkSession
.createDataset(sc
 .wholeTextFiles(("s3://<Bucket>/<key>/<yyyy>/<MM>/<dd>/<hh>/*"))
.values
.flatMap(x=> {x
.replace("\n", "")
 .replace("}{", "}}{{")
 .split("\\}\\{")}))
sparkSession
.createDataset(sc)
.wholeTextFiles((“s3://*”)
价值观
.flatMap(x=>{x
.replace(“\n”和“”)
.replace(“}{,“}}{{”)
.split(“\\\\{”)})
执行上面的切片和骰子(比如replace和split)以json行的形式转换漂亮的json数据(每个json一条json记录)

现在我在EMR上运行时遇到此错误:

由于阶段失败,作业中止:阶段11.0中的任务1失败4次,最近的失败:阶段11.0中的任务1.3丢失(TID 43,ip-10-0-2-22.eu-west-1.compute.internal,执行器1):org.apache.SparkException:Kryo序列化失败:缓冲区溢出。可用:0,必需:1148334。若要避免此情况,请增加spark.kryoserializer.Buffer.max值

我已经尝试增加kyro序列化程序缓冲区
--conf spark.kryoserializer.buffer.max=2047m
的值,但在读取某些小时位置(如09,10小时)的数据时,我仍然会遇到此错误,而在其他小时,它的读取效果良好

我想问一下如何删除此错误,以及是否需要在spark配置中添加其他内容,如更改分区数?谢谢