从逻辑上读取带有Int和String的序列文件,
然后,如果我这样做:
.pbxproj
这没关系,因为IntWritable转换为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
然后我立即收到此错误:
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
根本原因还不是很清楚-序列化,但是为什么这么困难?我注意到这是另一种类型的序列化方面。另外,它仅在运行时注明。
答案 0 :(得分:1)
如果目标只是获取一个Integer值,则需要调用可写的get
.map{case (x, y) => (x.get()
然后JVM处理serialization of the Integer object而不是因为it doesn't implement the Serializable interface
不知道如何处理IntWritable