File Geodatabase

A file geodatabase is an Esri geospatial data format that stores and manages spatial and nonspatial data. It can store various types of geographic data, including nonspatial tables, feature classes, feature datasets, and raster datasets.

GeoAnalytics Engine supports loading tables and feature classes of point, multipoint, line, and polygon geometries. After loading the file geodatabase into a Spark DataFrame, you can perform analysis and visualize the data by using the SQL functions and tools available in GeoAnalytics Engine in addition to functions offered in Spark.

The following table shows the Python syntax for loading the file geodatabase into a Spark DataFrame.

LoadSave
spark.read.format("filegdb").load()Not supported
spark.read.load(format="filegdb")Not supported

When you load the file geodatabase, specify the path of the file geodatabase and the name of the table or feature class using the below options.

DataFrameReader optionExampleDescription
gdbPath.option("gdbPath", "s3a://my-bucket/my-folder/example.gdb")The path to the file geodatabase. It is required for loading the file geodatabase.
gdbName.option("gdbName", "us_rivers")The name of the table or feature class in the file geodatabase.

If you don't specify the gdbName, the complete catalog of the datasets in the file geodatabase will be loaded.

fgdb

Above is an example view of a file geodatabase in the ArcGIS Pro Catalog pane. When you load the catalog for the file geodatabase named example.gdb, the table catalog includes the dataset name, Name, the dataset type, DatasetType, and the geometry type, GeometryType, for each table and feature class.

Python
Use dark colors for code blocksCopy
1
2
3
4
# Load the file geodatabase catalog from an S3 bucket
spark.read.format("filegdb").option("gdbPath", "s3a://my-bucket/my-folder/example.gdb").load().show()
Result
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
+-------------+-------------+------------+
|         Name|  DatasetType|GeometryType|
+-------------+-------------+------------+
|ca_population|        Table|        null|
|     ca_parks|Feature Class|       Point|
|     us_lakes|Feature Class|     Polygon|
|    us_rivers|Feature Class|    Polyline|
|        calls|Feature Class|  MultiPoint|
+-------------+-------------+------------+

Usage notes

  • GeoAnalytics Engine will load date data type in a table or feature class as a TimestampType. If there is one date column in a table or feature class, it will be automatically set as the time field in a Spark DataFrame. If there are multiple date columns, you can call st.set_time_fields() to enable time.
  • The table or feature class name is unique in a file geodatabase. To load the table or feature class in a feature dataset, you can access the data with gdbName without specifying the name or path to the feature dataset. In the above example, you can load the feature class us_lakes with syntax spark.read.format("filegdb").option("gdbPath", "s3a://my-bucket/my-folder/example.gdb").option("gdbName", "us_lakes").load().
  • When GeoAnalytics Engine accesses a file geodatabase, it will not lock the table, feature class, or feature dataset. You can freely edit or modify the file geodatabase with other processes such as ArcGIS Pro.
  • When loading the catalog of the file geodatabase, the name of the feature dataset is not included in the table catalog.
  • GeoAnalytics Engine doesn't support loading mosaic datasets or raster datasets stored in a file geodatabase.
  • GeoAnalytics Engine doesn't support saving data into file geodatabases.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.