使用sparkjava的序列文件读取问题

t40tm48m  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(385)

我正在尝试读取由使用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();
}
dfuffjeb

dfuffjeb1#

这是使它工作所需要的
因为我们使用hbase来存储数据,这个reducer将结果输出到hbase表,hadoop告诉我们他不知道如何序列化数据。这就是为什么我们需要帮助它。在安装程序中设置io.serializations变量,您可以在spark中进行相应的设置

conf.setStrings("io.serializations", new String[]{hbaseConf.get("io.serializations"), MutationSerialization.class.getName(), ResultSerialization.class.getName()});

相关问题