gpt4 book ai didi

apache-spark - 使用 Spark/Scala 读取序列文件时,无法序列化结果 : org. apache.hadoop.io.IntWritable

转载 作者:可可西里 更新时间:2023-11-01 16:35:46 26 4
gpt4 key购买 nike

从逻辑上读取带有 Int 和 String 的序列文件,

然后如果我这样做:

val sequence_data = sc.sequenceFile("/seq_01/seq-directory/*", classOf[IntWritable], classOf[Text])
.map{case (x, y) => (x.toString(), y.toString().split("/")(0), y.toString().split("/")(1))}
.collect

这没问题,因为 IntWritable 已转换为 String。

如果我这样做:

val sequence_data = sc.sequenceFile("/seq_01/seq-directory/*", classOf[IntWritable], classOf[Text])
.map{case (x, y) => (x, y.toString().split("/")(0), y.toString().split("/")(1))}
.collect

然后我立即得到这个错误:

org.apache.spark.SparkException: Job aborted due to stage failure: Task 5.0 in stage 42.0 (TID 692) had a not serializable result: org.apache.hadoop.io.IntWritable

根本原因还不是很清楚——连载,但为什么这么难?这是我注意到的另一种序列化方面。此外,它仅在运行时记录。

最佳答案

如果目标只是获取一个 Integer 值,则需要对可写对象调用 get

.map{case (x, y) => (x.get()

然后 JVM 处理 serialization of the Integer object而不是不知道如何处理 IntWritable 因为 it doesn't implement the Serializable interface

String does implement Serializable

关于apache-spark - 使用 Spark/Scala 读取序列文件时,无法序列化结果 : org. apache.hadoop.io.IntWritable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com