【问题标题】:Sequence file reading issue using spark Java使用 Spark Java 的序列文件读取问题
【发布时间】:2017-10-01 18:38:45
【问题描述】:

我正在尝试使用 spark 读取 hive 生成​​的序列文件。当我尝试访问该文件时,我面临 org.apache.spark.SparkException: Job aborted due to stage failure: Task not serializable: java.io.NotSerializableException:

我已经尝试过解决这个问题的方法,比如使类可序列化,但我仍然面临这个问题。我在这里写代码sn-p,请让我知道我在这里缺少什么。

是因为 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();
}

【问题讨论】:

  • 请发布错误的堆栈跟踪,如果您能发布整个代码将会很有帮助。

标签: hadoop apache-spark sequencefile bigdata


【解决方案1】:

这是使它工作所需的东西

因为我们使用 HBase 来存储我们的数据并且这个 reducer 将其结果输出到 HBase 表中,所以 Hadoop 告诉我们他不知道如何序列化我们的数据。这就是为什么我们需要帮助它。在 setUp 中设置 io.serializations 变量 你可以相应地在火花中做到这一点

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2020-03-10
    相关资源
    最近更新 更多