gpt4 book ai didi

apache-spark - 如何读取 Spark 工作节点中的文件?

转载 作者:行者123 更新时间:2023-12-05 07:03:49 25 4
gpt4 key购买 nike

我正在开发一个 spark 应用程序,它需要读取工作节点上的文件。我已经为我的 rdd 创建了一个映射,如下所示:

        SparkConf conf = new SparkConf().setAppName("startingSpark").setMaster("local[*]");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> file = sc.textFile("D:\\myFile.txt");
JavaPairRDD<String, String> pairs = file.mapToPair(s -> new Tuple2<>((int)(Integer.parseInt(s.split(",")[1])/100)+"", s.split(",")[1])/100)+"#"+s));

现在,我想在每个工作节点上根据键值读取文件。

JavaPairRDD<String, String> rdd1 = pairs.reduceByKey(new Function2<String, String, String>() {

@Override
public String call(String v1, String v2) throws Exception {
String key=v2.split("#")[0];
JavaRDD <String> br =sc.textFile(key+".txt");
return v1+" "+v2;
}
});

报错:

java.io.NotSerializableException: org.apache.spark.api.java.JavaSparkContext 

我已经尝试用我的主类实现 java.io.Serializable 但没有成功。非常感谢任何帮助。

最佳答案

java.io.NotSerializableException: org.apache.spark.api.java.JavaSparkContext 

上面的异常是因为你所有的工作节点都无法识别路径“D:\myFile.txt”

您不需要在您的代码上实现任何额外的逻辑,只需使用将您的源代码放入 HDFS 路径,然后替换到下面

JavaRDD<String> file = sc.textFile("hdfs:\\localhost\xx\\xx.txt");

关于apache-spark - 如何读取 Spark 工作节点中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63112621/

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