zoukankan      html  css  js  c++  java
  • Spark java 实践

    spark java

    数据结构

    SparkSession
    SparkConf
    SparkContext
    JavaSparkContext
    JavaStreamingContext
    JavaRDD<Tuple2<Object, Object>>
    JavaPairRDD<Tuple2<Integer, Integer>, Double>,有collectAsMap()方法
    JavaRDD<Tuple2<Double, Double>>

    数据结构转换

    读取字符串
    JavaRDD stringItem = context.textFile(path);

    将字符串进行拆分,map()方法返回JavaRDD数据结构
    JavaRDD<String[]> splitedItem = stringItem.map(s -> {
    // | 为正则表达式中特殊字符,表示或操作,则需要转义
    String[] sarray = s.split("|");
    return sarray;
    });

    将拆分结果转成key/value,mapToPair()方法返回JavaPairRDD数据结构
    Tuple2<>可以自动推断数据类型
    JavaPairRDD<Float, String> movieRDD = splitedItem.mapToPair(line ->
    new Tuple2<>(Float.parseFloat(line[0]), line[1]));

    数据转换异常:

    step 1:
    JavaRDD<Tuple2<Float, String>> movieRDD = splitedItem.mapToPair(line ->
    new Tuple2<>(Float.parseFloat(line[0]), line[1]));
    step 2: 将JavaRDD通过JavaPairRDD.fromJavaRDD()方法转成JavaPairRDD,然后调用collectAsMap(),则抛出类型转换异常。

    ML Pipeline

    用户自定义函数

    // 通过用户自定义函数解决数据异常值问题
    sparkSession.udf().register("changeDataType", s -> s.equals("?") ? "0" : s, DataTypes.StringType);
    // register函数原型如下
    public void register(String name, UDF1 f, DataType returnType) {}

  • 相关阅读:
    C#RSA的研究,C#、Java互通
    .NetCore接入Log4Net
    asp.net core 5.0 使用log4net
    C# 根据出生年月 计算天数/计算X岁X月X天字符串
    DateTime? 转对象出错的问题
    WPF新的窗口返回值的方式
    C# Post
    数据库跨服务器更新表内容
    sql server 初学乱记
    sql server 2008/k3 cloud 安装踩雷
  • 原文地址:https://www.cnblogs.com/sunzhuli/p/9696714.html
Copyright © 2011-2022 走看看