我正在尝试读取由使用spark的hive生成的序列文件。尝试访问该文件时,遇到org.apache.spark.sparkeexception:由于阶段失败而中止作业:task not serializable:java.io.notserializableeexception:
我尝试过解决这个问题的方法,比如使类可序列化,但我仍然面临这个问题。我在这里写代码片段,请让我知道我在这里缺少什么。
是因为byteswritable数据类型还是其他导致问题的原因。
JavaPairRDD<BytesWritable, Text> fileRDD = javaCtx.sequenceFile("hdfs://path_to_the_file", BytesWritable.class, Text.class);
List<String> result = fileRDD.map(new Function<Tuple2<BytesWritables,Text>,String>(){
public String call (Tuple2<BytesWritable,Text> row){
return row._2.toString()+"\n";
}).collect();
}
1条答案
按热度按时间dfuffjeb1#
这是使它工作所需要的
因为我们使用hbase来存储数据,这个reducer将结果输出到hbase表,hadoop告诉我们他不知道如何序列化数据。这就是为什么我们需要帮助它。在安装程序中设置io.serializations变量,您可以在spark中进行相应的设置