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) {}

  • 相关阅读:
    判断IE浏览器的版本号
    解决下拉框第一行出现空格的问题
    Springboot整合log4j2日志全解
    Java NIO之Selector(选择器)
    ZooKeeper客户端 zkCli.sh 节点的增删改查
    Java API操作ZooKeeper
    ReentrantLock(重入锁)功能详解和应用演示
    MySQL高可用集群方案
    Redis高可用之集群配置(六)
    linux free命令详解
  • 原文地址:https://www.cnblogs.com/sunzhuli/p/9696714.html
Copyright © 2011-2022 走看看