zoukankan      html  css  js  c++  java
  • Geospark-属性字段处理

    Geospark将从shapefile、csv等格式文件以及DataFrame中的读取的字段保存到了Geometry的userData字段中,可以通过调用.getUserData()方法获取,他会返回一个String对象,各个字段以 连接。

    Geometry属于JTS开源库的一部分,Geospark将JTS集成在了项目中,并且对其做了改动,所以我们在pom.xml中无需在配置。JTS中核心类是Geometry,代表了一个几何图形,存储了这个几何图形的坐标信息,并且支持拓扑运算。

    以CSV为例,他每条属性有两个字段,如何读取。

    -88.331492,32.324142,hotel,NewYork
    -88.175933,32.360763,gas,NewYork
    -88.388954,32.357073,bar,NewYork
    -88.221102,32.35078,restaurant,NewYork
    

    读取checkin.csv,并且将其转为Geometry

    // 初始化Spark
    SparkSession spark = SparkSession.builder().
            config("spark.serializer","org.apache.spark.serializer.KryoSerializer").
            config("spark.kryo.registrator", "org.datasyslab.geospark.serde.GeoSparkKryoRegistrator").
            master("local[*]").appName("Learn08").getOrCreate();
    
    
    // 加载CSV文件
    JavaSparkContext sc = new JavaSparkContext(spark.sparkContext());
    String pointRDDInputLocation = Learn08.class.getResource("/checkin.csv").toString();
    Integer pointRDDOffset = 0; // 地理位置(经纬度)从第0列开始
    FileDataSplitter pointRDDSplitter = FileDataSplitter.CSV;
    Boolean carryOtherAttributes = true; // 第二列的属性(酒店名),这里我们要加载的字段
    
    PointRDD rdd = new PointRDD(sc, pointRDDInputLocation, pointRDDOffset, pointRDDSplitter, carryOtherAttributes);
    rdd.rawSpatialRDD.foreach((point -> {
        String[] attrs = point.getUserData().toString().split("	");
        System.out.println(StringUtils.join(attrs, "|"));
    }));
    

    ointRDD rdd = new PointRDD(sc, pointRDDInputLocation, pointRDDOffset, pointRDDSplitter, carryOtherAttributes);,我们将carryOtherAttributes设置为true,并且调用.split(" ")将字段分隔,并用|重新拼接:

    hotel|NewYork
    gas|NewYork
    restaurant|NewYork
    bar|NewYork
    

    对于shp文件也是如此,geospark会将shp文件中的每一个图斑的所有字段全部放在userData中,并用 连接。

  • 相关阅读:
    《高校实验室低值易耗品和耗材的"一站式"管理探索 》论文笔记
    《浅谈MVC框架模式》论文笔记
    《低值易耗品的超市化和信息化管理模式探索》论文笔记
    《浅谈企业低值易耗品的管理》论文笔记
    《解说Spring MVC的处理流程及优点》论文笔记
    《基于SSM构建RESTfuI API服务》论文笔记
    《基于SSM的登录验证功能实现》论文笔记
    《基于SpringBoot+Shiro的权限管理实现》论文笔记
    《实验室设备管理系统》10
    《实验室设备管理系统》9
  • 原文地址:https://www.cnblogs.com/aixing/p/13327378.html
Copyright © 2011-2022 走看看