热卖商品
新闻详情
...可扩展开发的SuperMap iObjects Java for Spark - 2017年12月...
来自 : magazine.supermap.com/view-100
发布时间:2021-03-24
val resultRDD = pointRDD.summarize(regionRDD, Array(FieldStatistics( LID , StatisticsMode.Max, LID_ Max )), Operator.RelContain) 提取列 使用 FeatureRDD 提供的 select 函数,可以选择指定的一列或多列属性,构造一个新的 FeatureRDD : val selFeatureRDD = featureRDD. select(Array( LID , Name )) 追加列 使用FeatureRDD 提供的 join 函数,可以将一个FeatureRDD 中的属性值追加到当前 FeatureRDD 中,在追加时,如果不设置要素连接字段,则会默认使用要素的 featureID 作为连接字段: // 指定 LID 字段为要素连接字段 val resultRDD2 = featureRDD.join(at tributeRDD, Map( Name - ResultName ), Some( LID ), Some( LID )) 5.应用案例 某省的通信运营商具有大量的(百亿级规模)手机信令数据,数据是csv文本格式,且由于体量巨大,存储在HDFS之上。另有全省的通信基站数据(千万级规模),存储在UDB数据源汇总。希望通过Spark扩展模块统计分析每个基站邻近的信令数目,用于优化基站部署,可以通过以下步骤进行分析: //设置job的名字 val conf = new SparkConf().setAppName( ExamplePhone ) //构建Spark上下文 val sc = new SparkContext(conf) //读取HDFS上的信令数据 val phoneRDD = SimpleCSVReader.read(sc, hdfs:// bigdata:9000/home/phone.csv ) //读取UDB中的基站数据 val stationRDD = SDXReader.readFromUDB(sc, / home/station.udb , station ) //构建基站的2公里范围缓冲区 val bufferRDD = stationRDD.buffer(2.0, DistanceUnit. Kilometer, BufferEnd.Round) //使用缓冲区进行聚合分析,统计缓冲区内的信令数目 val statField = FieldS ta tistics( , StatisticsMode. RecordCount, PhoneCount ) val resultRDD = phoneRDD.summarize(bufferRDD, Array(statField), Operator.RelContain) //保存结果 SDXWriter.writeToUDB(resultRDD, /home/result.udb , result ) //终止Spark上下文 sc.stop() 如上所述,SuperMap iObjects Java for Spark 9D版本提供了多种数据来源的读取与写入支持,并在数据读取之后,可以进行各种空间处理和分析。更为重要的是,组件产品的SDK模式可以支持用户根据自身业务需求,进行灵活的功能组织和二次开发,让用户低成本的使用Spark这一优秀的分布式大数据技术引擎进行 GIS开发。
本文链接: http://superspark.immuno-online.com/view-681768.html
发布于 : 2021-03-24
阅读(0)
最新动态
2013-07-13
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
品牌分类
其他
联络我们