记一次javaspark 读写文件的操作
java spark 主代码
package test;
import domain.UserDefineRegx;
import kits.BasicUnit;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.api.java.function.VoidFunction;
public class LoadDataFromText {
public static void main(String[] args) {
// 创建spark 的初始化环境的配置项
SparkConf sparkConf = new SparkConf()
.setMaster("local[1]")
.setAppName("loadDataFormText");
//创建spark的上下文环境
JavaSparkContext sc = new JavaSparkContext(sparkConf);
//使用javaspark读取persion 中数据并输出处理结果
JavaRDD<String> stringJavaRDD = sc.textFile("file/persion.txt");
JavaRDD<String> mapResult = stringJavaRDD.map(new Function<String, String>() {
@Override
public String call(String v1) throws Exception {
String result = v1.replaceAll("\t","|");
return result;
}
});
//测试输出文件
// mapResult.foreach(new VoidFunction<String>() {
// @Override
// public void call(String s) throws Exception {
// System.out.println(s);
// }
// });
// 将数据存储进入file文件
mapResult.saveAsTextFile("file/persion_res");
// 关闭资源
sc.close();
}
}
注意点:在调用saveAsTextFile 的时候,报错空指针异常,这个主要是因为在本地开发的时候,本地的windows中不存在hadoop的环境,解决方案可以参考这位博主的解决方案:https://blog.csdn.net/hr786250678/article/details/89702671