MS Fabric 和地理空间数据

问题描述 投票:0回答:1

Microsoft Fabric 的 Data Lakehouse 能否处理 shp、geojson 等格式的地理空间数据?

我尝试将 geopandas 地理数据框放入 pyspark/parquet

spark_df.write.parquet(destination_path)
,但我似乎无法获取数据。

那么,有可能吗?有没有专门针对地理空间数据的好的教程?

azure geospatial geopandas infrastructure microsoft-fabric
1个回答
0
投票

首先从 shp 或 geojson 文件中读取地理空间数据并将其转换为 Spark DataFrame。 要执行此操作,请使用下面的代码块。

import geopandas as gpd
gdf = gpd.read_file('/dbfs/json/points.geojson')
gdf['geom'] = [geom.wkt for geom in gdf['geometry']]
s_df = spark.createDataFrame(gdf.drop("geometry", axis=1,inplace=False))
s_df.printSchema()
s_df.show()

enter image description here

接下来,将数据写入onelake。 在编写之前,请确保在高级选项下启用Azure Data Lake Storage 凭据传递

enter image description here

现在,前往你的一栋湖边小屋 > 文件

enter image description here

创建新文件夹。我创建了一个名为 geodata 的文件夹。

enter image description here

打开该文件夹的属性并复制ABFS路径。

enter image description here

然后运行下面的代码来编写它。

oneLake = "<your_abfs_link>/Files/geodata"
s_df.write.format("parquet").mode("overwrite").save(oneLake)

enter image description here

是写给onelake的。

enter image description here

再次使用相同的链接,您可以阅读它。

enter image description here

geom
列转换回几何类型 您可以使用下面的代码。

from shapely.wkt import loads

odf = spark.read.parquet(oneLake)
p_df = odf.toPandas()
p_df['geometry'] = [loads(i) for i in p_df['geom']]
p_df = p_df.drop("geom",axis=1)
print(p_df.dtypes)

p_df

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.