java-spark的各种常用算子的写法

    通常写spark的程序用scala比较方便,毕竟spark的源码就是用scala写的。然而,目前java开发者特别多,尤其进行数据对接、上线服务的时候,这时候,就需要掌握一些spark在java中的使用方法了

   一、map

     map在进行数据处理、转换的时候,不能更常用了

     在使用map之前 首先要定义一个转换的函数 格式如下:

   

Function<String, LabeledPoint> transForm = new Function<String, LabeledPoint>() {//String是某一行的输入类型 LabeledPoint是转换后的输出类型 @Override public LabeledPoint call(String row) throws Exception {//重写call方法 String[] rowArr = row.split(","); int rowSize = rowArr.length; double[] doubleArr = new double[rowSize-1]; //除了第一位的lable外 其余的部分解析成double 然后放到数组中 for (int i = 1; i < rowSize; i++) { String each = rowArr[i]; doubleArr[i] = Double.parseDouble(each); } //用刚才得到的数据 转成向量 Vector feature = Vectors.dense(doubleArr); double label = Double.parseDouble(rowArr[0]); //构造用于分类训练的数据格式 LabelPoint LabeledPoint point = new LabeledPoint(label, feature); return point; } };

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwwpx.html