如何在Databricks notebook中读取.shp文件及sc参数相关疑问
解答内容
1. ShapefileReader.readToGeometryRDD中sc参数说明
sc是SparkContext的默认全局实例,在Databricks的Scala Notebook环境中会被系统自动预初始化,无需手动创建实例,代码中直接调用该变量即可。
你提供的示例代码无需修改sc变量,直接在Databricks的Scala cell中运行就能读取指定路径下的Shapefile文件,转换后的临时视图rawSpatialDf可以直接在同个Notebook的Python、SQL、R环境中调用。
2. Databricks Notebook中替代GeoPandas实现地图绘制的方案
- 小数据量场景:先将空间数据过滤到可单机加载的量级,通过
.toPandas()方法转为Pandas DataFrame,将几何列转换为WKT或GeoJSON格式后,调用folium或plotly.express库完成地图渲染,这两个可视化库的输出Databricks Notebook原生支持展示。 - 大数据量场景:使用Databricks官方的Mosaic空间计算库,无需将数据转为单机结构,直接对Spark DataFrame中的几何字段调用内置可视化方法即可完成地图渲染。
附:修正后的参考代码
%scala var spatialRDD = new SpatialRDD[Geometry] spatialRDD = ShapefileReader.readToGeometryRDD(sc, "/ml/blogs/geospatial/shapefiles/nyc") var rawSpatialDf = Adapter.toDf(spatialRDD,spark) rawSpatialDf.createOrReplaceTempView("rawSpatialDf") //DataFrame now available to SQL, Python, and R
内容的提问来源于stack exchange,提问作者Ajay Verma
相关产品推荐
相关产品推荐

