java基于geospark读取shpfile文件
直接上代码
// 注册geospark
SparkSession spark = SparkSession.builder().
config("spark.serializer","org.apache.spark.serializer.KryoSerializer").
config("spark.kryo.registrator", GeoSparkVizKryoRegistrator.class.getName()).
config("spark.sql.crossJoin.enabled","true").
master("local[4]").appName("app").getOrCreate();
GeoSparkSQLRegistrator.registerAll(spark);
// 读取shp
String inputPath = "D:\\gisdata\\geospark\\city" ;
System.setProperty("geospark.global.charset", "utf8");
SpatialRDD<Geometry> rdd = ShapefileReader.readToGeometryRDD(new JavaSparkContext(spark.sparkContext()), inputPath);
// 格式转换
Dataset<Row> rawDF = Adapter.toDf(rdd, spark);
将Dataset类型转化为我们常见的list,空间坐标会以wkt格式显示
List<Row> list = spatialDf.collectAsList();
for (Row r : list) {
Map<String, Object> map = new HashMap<>();
map.put("name", r.getString(0).trim());
map.put("totall", r.getLong(1));
map.put("avg", r.getDouble(2));
mlist.add(map);
}