From af37d9231aeb1a17b8b83062db3003bb22aea438 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 1 May 2024 11:29:21 -0400 Subject: [PATCH 01/38] checkpoint handling, streamline gdal setup, test log changes --- CHANGELOG.md | 12 + R/sparkR-mosaic/sparkrMosaic/DESCRIPTION | 2 +- R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION | 2 +- R/sparklyr-mosaic/tests.R | 2 +- pom.xml | 47 +- python/mosaic/__init__.py | 2 +- python/mosaic/api/fuse.py | 321 ++--- python/mosaic/api/gdal.py | 89 +- python/mosaic/core/mosaic_context.py | 13 +- python/setup.cfg | 2 +- python/test/test_fuse_install.py | 36 +- python/test/test_gdal_install.py | 20 +- python/test/utils/setup_fuse.py | 8 +- python/test/utils/setup_gdal.py | 32 +- python/test/utils/spark_test_case.py | 8 +- scripts/0.4.2/mosaic-gdal-init.sh | 53 + scripts/mosaic-docker.sh | 14 +- scripts/mosaic-gdal-init.sh | 15 +- .../labs/mosaic/core/raster/api/GDAL.scala | 87 +- .../core/raster/gdal/MosaicRasterGDAL.scala | 1100 +++++++++-------- .../mosaic/core/raster/io/RasterReader.scala | 73 +- .../mosaic/core/raster/io/RasterWriter.scala | 31 +- .../core/types/model/MosaicRasterTile.scala | 45 +- .../expressions/raster/RST_FromContent.scala | 10 +- .../expressions/raster/RST_MakeTiles.scala | 21 +- .../labs/mosaic/functions/MosaicContext.scala | 2 +- .../functions/MosaicExpressionConfig.scala | 10 +- .../labs/mosaic/gdal/MosaicGDAL.scala | 60 +- .../com/databricks/labs/mosaic/package.scala | 4 +- .../labs/mosaic/utils/PathUtils.scala | 268 +++- .../mosaic/core/raster/TestRasterGDAL.scala | 14 + .../mosaic/datasource/OGRFileFormatTest.scala | 2 +- .../format/ConvertToBehaviors.scala | 6 +- .../geometry/FlattenPolygonsBehaviors.scala | 12 +- .../geometry/ST_AreaBehaviors.scala | 6 +- .../ST_AsGeoJSONTileAggBehaviors.scala | 2 +- .../geometry/ST_AsMVTTileAggBehaviors.scala | 2 +- .../geometry/ST_BufferBehaviors.scala | 6 +- .../geometry/ST_BufferLoopBehaviors.scala | 4 +- .../geometry/ST_CentroidBehaviors.scala | 6 +- .../geometry/ST_ConcaveHullBehaviors.scala | 6 +- .../geometry/ST_ContainsBehaviors.scala | 6 +- .../geometry/ST_ConvexHullBehaviors.scala | 6 +- .../geometry/ST_DifferenceBehaviors.scala | 4 +- .../geometry/ST_DimensionBehaviors.scala | 6 +- .../geometry/ST_DistanceBehaviors.scala | 6 +- .../geometry/ST_EnvelopeBehaviors.scala | 4 +- .../geometry/ST_GeometryTypeBehaviors.scala | 10 +- .../ST_HasValidCoordinatesBehaviors.scala | 6 +- .../geometry/ST_HaversineBehaviors.scala | 6 +- .../geometry/ST_IntersectionBehaviors.scala | 10 +- .../geometry/ST_IntersectsBehaviors.scala | 10 +- .../geometry/ST_IsValidBehaviors.scala | 6 +- .../geometry/ST_LengthBehaviors.scala | 6 +- .../geometry/ST_MinMaxXYZBehaviors.scala | 18 +- .../geometry/ST_NumPointsBehaviors.scala | 6 +- .../geometry/ST_RotateBehaviors.scala | 6 +- .../geometry/ST_SRIDBehaviors.scala | 6 +- .../geometry/ST_ScaleBehaviors.scala | 6 +- .../geometry/ST_SetSRIDBehaviors.scala | 4 +- .../geometry/ST_SimplifyBehaviors.scala | 6 +- .../geometry/ST_TransformBehaviors.scala | 4 +- .../geometry/ST_TranslateBehaviors.scala | 6 +- .../geometry/ST_UnaryUnionBehaviours.scala | 4 +- .../geometry/ST_UnionBehaviors.scala | 8 +- .../geometry/ST_UpdateSRIDBehaviors.scala | 4 +- .../geometry/ST_WithinBehaviors.scala | 6 +- .../expressions/geometry/ST_XBehaviors.scala | 6 +- .../expressions/geometry/ST_YBehaviors.scala | 6 +- .../expressions/geometry/ST_ZBehaviors.scala | 6 +- .../expressions/index/CellAreaBehaviors.scala | 4 +- .../index/CellIntersectionAggBehaviors.scala | 4 +- .../index/CellIntersectionBehaviors.scala | 4 +- .../index/CellKLoopBehaviors.scala | 4 +- .../index/CellKLoopExplodeBehaviors.scala | 4 +- .../index/CellKRingBehaviors.scala | 4 +- .../index/CellKRingExplodeBehaviors.scala | 4 +- .../index/CellUnionAggBehaviors.scala | 4 +- .../index/CellUnionBehaviors.scala | 4 +- .../index/GeometryKLoopBehaviors.scala | 4 +- .../index/GeometryKLoopExplodeBehaviors.scala | 4 +- .../index/GeometryKRingBehaviors.scala | 4 +- .../index/GeometryKRingExplodeBehaviors.scala | 6 +- .../index/GridDistanceBehaviors.scala | 4 +- .../index/IndexGeometryBehaviors.scala | 2 +- .../index/MosaicExplodeBehaviors.scala | 20 +- .../index/PointIndexBehaviors.scala | 8 +- .../expressions/index/PolyfillBehaviors.scala | 12 +- .../raster/RST_BandMetadataBehaviors.scala | 2 +- .../raster/RST_BoundingBoxBehaviors.scala | 2 +- .../raster/RST_ClipBehaviors.scala | 2 +- .../raster/RST_CombineAvgAggBehaviors.scala | 2 +- .../raster/RST_CombineAvgBehaviors.scala | 2 +- .../raster/RST_ConvolveBehaviors.scala | 2 +- .../raster/RST_DerivedBandAggBehaviors.scala | 2 +- .../raster/RST_DerivedBandBehaviors.scala | 2 +- .../raster/RST_FilterBehaviors.scala | 2 +- .../raster/RST_FromBandsBehaviors.scala | 2 +- .../raster/RST_FromFileBehaviors.scala | 2 +- .../raster/RST_GeoReferenceBehaviors.scala | 2 +- .../raster/RST_GetNoDataBehaviors.scala | 2 +- .../raster/RST_GetSubdatasetBehaviors.scala | 2 +- .../raster/RST_HeightBehaviors.scala | 2 +- .../raster/RST_InitNoDataBehaviors.scala | 2 +- .../raster/RST_IsEmptyBehaviors.scala | 2 +- .../raster/RST_MemSizeBehaviors.scala | 2 +- .../raster/RST_MergeAggBehaviors.scala | 2 +- .../raster/RST_MergeBehaviors.scala | 2 +- .../raster/RST_MetadataBehaviors.scala | 2 +- .../raster/RST_NumBandsBehaviors.scala | 2 +- .../raster/RST_PixelHeightBehaviors.scala | 2 +- .../raster/RST_PixelWidthBehaviors.scala | 2 +- .../raster/RST_RasterToGridAvgBehaviors.scala | 2 +- .../RST_RasterToGridCountBehaviors.scala | 2 +- .../raster/RST_RasterToGridMaxBehaviors.scala | 2 +- .../RST_RasterToGridMedianBehaviors.scala | 2 +- .../raster/RST_RasterToGridMinBehaviors.scala | 2 +- .../RST_RasterToWorldCoordBehaviors.scala | 2 +- .../RST_RasterToWorldCoordXBehaviors.scala | 2 +- .../RST_RasterToWorldCoordYBehaviors.scala | 2 +- .../raster/RST_ReTileBehaviors.scala | 2 +- .../raster/RST_RotationBehaviors.scala | 2 +- .../raster/RST_SRIDBehaviors.scala | 2 +- .../raster/RST_ScaleXBehaviors.scala | 2 +- .../raster/RST_ScaleYBehaviors.scala | 2 +- .../raster/RST_SetNoDataBehaviors.scala | 2 +- .../raster/RST_SkewXBehaviors.scala | 2 +- .../raster/RST_SkewYBehaviors.scala | 2 +- .../raster/RST_SubdatasetsBehaviors.scala | 2 +- .../raster/RST_SummaryBehaviors.scala | 2 +- .../raster/RST_TessellateBehaviors.scala | 2 +- .../RST_ToOverlappingTilesBehaviors.scala | 2 +- .../raster/RST_TransformBehaviors.scala | 2 +- .../raster/RST_TryOpenBehaviors.scala | 2 +- .../raster/RST_UpperLeftXBehaviors.scala | 2 +- .../raster/RST_UpperLeftYBehaviors.scala | 2 +- .../raster/RST_WidthBehaviors.scala | 2 +- .../RST_WorldToRasterCoordBehaviors.scala | 2 +- .../RST_WorldToRasterCoordXBehaviors.scala | 2 +- .../RST_WorldToRasterCoordYBehaviors.scala | 2 +- .../functions/MosaicContextBehaviors.scala | 4 +- .../knn/GridRingNeighboursBehaviors.scala | 6 +- .../mosaic/models/knn/SpatialKNNTest.scala | 4 +- .../labs/mosaic/sql/AnalyzerBehaviors.scala | 2 +- .../labs/mosaic/sql/PrettifierBehaviors.scala | 2 +- .../sql/extensions/TestSQLExtensions.scala | 10 +- .../mosaic/test/MosaicSpatialQueryTest.scala | 8 +- .../labs/mosaic/test/SparkSuite.scala | 2 +- .../sql/test/SharedSparkSessionGDAL.scala | 6 +- 149 files changed, 1584 insertions(+), 1307 deletions(-) create mode 100644 scripts/0.4.2/mosaic-gdal-init.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c10e4f2b..222858bfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## v0.4.2 [DBR 13.3 LTS] +- Fixed 'raster_to_grid' reader tessellation issue with multiple bands. +- Expanded support for fuse-based checkpointing (persisted raster storage), managed through: + - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. + - python: `mos.enable_gdal(spark, with_checkpoint_path=path)`. + - scala: `MosaicGDAL.enableGDALWithCheckpoint(spark, path)` function. +- Streamlines `setup_gdal` and `setup_fuse_install`: + - init script and resource copy logic fixed to repo "main" (.so) / "latest" (.jar). + - added apt-get lock handling for native installs. + - removed support for UbuntuGIS PPA as GDAL version no longer compatible with jammy default (3.4.x). +- H3 python changed from "==3.7.0" to "<4.0,>=3.7" to pick up patches. + ## v0.4.1 [DBR 13.3 LTS] - Fixed python bindings for MosaicAnalyzer functions. - Added tiller functions, ST_AsGeoJSONTile and ST_AsMVTTile, for creating GeoJSON and MVT tiles as aggregations of geometries. diff --git a/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION b/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION index c72991a01..e5e1de0f1 100644 --- a/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION +++ b/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION @@ -1,6 +1,6 @@ Package: sparkrMosaic Title: SparkR bindings for Databricks Mosaic -Version: 0.4.1 +Version: 0.4.2 Authors@R: person("Robert", "Whiffin", , "robert.whiffin@databricks.com", role = c("aut", "cre") ) diff --git a/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION b/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION index 4c5265fb5..69619e72a 100644 --- a/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION +++ b/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION @@ -1,6 +1,6 @@ Package: sparklyrMosaic Title: sparklyr bindings for Databricks Mosaic -Version: 0.4.1 +Version: 0.4.2 Authors@R: person("Robert", "Whiffin", , "robert.whiffin@databricks.com", role = c("aut", "cre") ) diff --git a/R/sparklyr-mosaic/tests.R b/R/sparklyr-mosaic/tests.R index 3663c63f6..9bad8f6fa 100644 --- a/R/sparklyr-mosaic/tests.R +++ b/R/sparklyr-mosaic/tests.R @@ -9,7 +9,7 @@ library(sparklyr.nested) spark_home <- Sys.getenv("SPARK_HOME") spark_home_set(spark_home) -install.packages("sparklyrMosaic_0.4.1.tar.gz", repos = NULL) +install.packages("sparklyrMosaic_0.4.2.tar.gz", repos = NULL) library(sparklyrMosaic) # find the mosaic jar in staging diff --git a/pom.xml b/pom.xml index f0b663cce..1bd007dea 100644 --- a/pom.xml +++ b/pom.xml @@ -146,27 +146,28 @@ - - org.scoverage - scoverage-maven-plugin - 2.0.2 - - - scoverage-report - package - - check - report-only - - - - - ${minimum.coverage} - true - ${scala.version} - skipTests=false - - + + + + + + + + + + + + + + + + + + + + + + net.alchim31.maven @@ -204,6 +205,8 @@ 2.0.0 ${project.build.directory}/test-reports + + false @@ -278,7 +281,7 @@ 2.12.10 2.12 3.4.0 - 0.4.1 + 0.4.2 diff --git a/python/mosaic/__init__.py b/python/mosaic/__init__.py index 84ff72ca6..22fcceb1f 100644 --- a/python/mosaic/__init__.py +++ b/python/mosaic/__init__.py @@ -4,4 +4,4 @@ from .models import SpatialKNN from .readers import read -__version__ = "0.4.1" +__version__ = "0.4.2" diff --git a/python/mosaic/api/fuse.py b/python/mosaic/api/fuse.py index ac1966cd1..588cc3144 100644 --- a/python/mosaic/api/fuse.py +++ b/python/mosaic/api/fuse.py @@ -1,171 +1,71 @@ from dataclasses import dataclass +from pathlib import Path import os -import pkg_resources import requests __all__ = ["SetupMgr", "setup_fuse_install"] -def get_install_mosaic_version() -> str: - """ - Currently installed version of mosaic. - - Returns - ------- - Installed version of package 'databricks-mosaic' if available; - otherwise, None - """ - try: - return pkg_resources.get_distribution("databricks-mosaic").version - except Exception: - pass - return None - - @dataclass class SetupMgr: """ Defaults mirror setup_gdal. """ - to_fuse_dir: str script_in_name: str = "mosaic-gdal-init.sh" script_out_name: str = "mosaic-gdal-init.sh" - with_mosaic_pip: bool = False - with_gdal: bool = True - with_ubuntugis: bool = False - override_mosaic_version: str = None jar_copy: bool = False jni_so_copy: bool = False - def configure(self) -> bool: + def configure(self, test_mode: bool = False) -> bool: """ Handle various config options. - - if `with_mosaic_pip` or `with_gdal` or `with_ubuntugis`, - script will be configured and written. Returns True unless resources fail to download. """ - # - set the mosaic and github versions - # will be used in downloading resources - # may be used in pip install - mosaic_version = get_install_mosaic_version() - github_version = mosaic_version # <- valid or None - if self.override_mosaic_version is not None and set( - self.override_mosaic_version - ) <= set("=0123456789."): - github_version = self.override_mosaic_version.replace("=", "") - github_version = mosaic_version # <- valid or None - pip_str = "" - release_version = None - - if ( - self.override_mosaic_version is not None - and self.override_mosaic_version == "main" - ): - github_version = "main" - elif self.override_mosaic_version is not None and set( - self.override_mosaic_version - ).issubset(set("=0123456789.")): - github_version = self.override_mosaic_version.replace("=", "") - elif mosaic_version is None: - github_version = "main" - - GITHUB_CONTENT_URL_BASE = ( - "https://raw.githubusercontent.com/databrickslabs/mosaic" - ) - GITHUB_CONTENT_TAG_URL = f"{GITHUB_CONTENT_URL_BASE}/v_{github_version}" - if github_version == "main": - GITHUB_CONTENT_TAG_URL = f"{GITHUB_CONTENT_URL_BASE}/main" - # - generate fuse dir path + # volumes must be pre-generated in unity catalog os.makedirs(self.to_fuse_dir, exist_ok=True) - with_script = self.with_mosaic_pip or self.with_gdal script_out_path = f"{self.to_fuse_dir}/{self.script_out_name}" - if with_script: - # - start with the unconfigured script - script_url = f"{GITHUB_CONTENT_TAG_URL}/scripts/{self.script_in_name}" - script = None + + # - start with the un-configured script (from repo) + # this is using a different (repo) folder in 0.4.2+ (to allow prior versions to work) + GITHUB_CONTENT_TAG_URL = "https://raw.githubusercontent.com/databrickslabs/mosaic/main" + script_url = f"{GITHUB_CONTENT_TAG_URL}/scripts/0.4.2/{self.script_in_name}" + script = None + root_path = None + if not test_mode: with requests.Session() as s: script = s.get(script_url, allow_redirects=True).text + else: + # test_mode (use local resource) + # - up 4 parents [0..3] + # - api [0] -> mosaic [1] -> python [2] -> mosaic [3] + root_path = Path(__file__).parents[3] + script_path = root_path / 'scripts' / '0.4.2' / self.script_in_name + script = script_path.read_text(encoding='utf-8') + + # - tokens used in script + SCRIPT_FUSE_DIR_TOKEN = "FUSE_DIR='__FUSE_DIR__'" # <- ' added + SCRIPT_WITH_FUSE_SO_TOKEN = "WITH_FUSE_SO=0" + + # - set the fuse dir + script = script.replace( + SCRIPT_FUSE_DIR_TOKEN, + SCRIPT_FUSE_DIR_TOKEN.replace("__FUSE_DIR__", self.to_fuse_dir), + ) - # - tokens used in script - SCRIPT_FUSE_DIR_TOKEN = "FUSE_DIR='__FUSE_DIR__'" # <- ' added - SCRIPT_GITHUB_VERSION_TOKEN = "GITHUB_VERSION=__GITHUB_VERSION__" - SCRIPT_MOSAIC_PIP_VERSION_TOKEN = ( - "MOSAIC_PIP_VERSION='__MOSAIC_PIP_VERSION__'" # <- ' added - ) - SCRIPT_WITH_MOSAIC_TOKEN = "WITH_MOSAIC=0" - SCRIPT_WITH_GDAL_TOKEN = "WITH_GDAL=0" - SCRIPT_WITH_UBUNTUGIS_TOKEN = "WITH_UBUNTUGIS=0" - SCRIPT_WITH_FUSE_SO_TOKEN = "WITH_FUSE_SO=0" - - # - set the github version in the script - # this will be used to download so files - script = script.replace( - SCRIPT_GITHUB_VERSION_TOKEN, - SCRIPT_GITHUB_VERSION_TOKEN.replace( - "__GITHUB_VERSION__", github_version - ), - ) - - # - set the fuse dir - script = script.replace( - SCRIPT_FUSE_DIR_TOKEN, - SCRIPT_FUSE_DIR_TOKEN.replace("__FUSE_DIR__", self.to_fuse_dir), - ) - - script = script.replace("apt-add-repository", "apt-add-repository -y") - - # - are we configuring for mosaic pip? - if self.with_mosaic_pip: - script = script.replace( - SCRIPT_WITH_MOSAIC_TOKEN, SCRIPT_WITH_MOSAIC_TOKEN.replace("0", "1") - ) - - # - are we configuring for gdal? - if self.with_gdal: - script = script.replace( - SCRIPT_WITH_GDAL_TOKEN, SCRIPT_WITH_GDAL_TOKEN.replace("0", "1") - ) - - # - are we configuring for ubuntugis? - if self.with_ubuntugis: - script = script.replace( - SCRIPT_WITH_UBUNTUGIS_TOKEN, - SCRIPT_WITH_UBUNTUGIS_TOKEN.replace("0", "1"), - ) - - # - are we configuring for jni so copy? - if self.jni_so_copy: - script = script.replace( - SCRIPT_WITH_FUSE_SO_TOKEN, - SCRIPT_WITH_FUSE_SO_TOKEN.replace("0", "1"), - ) - - # - set the mosaic version for pip - if ( - self.override_mosaic_version is not None - and not self.override_mosaic_version == "main" - ): - pip_str = f"=={self.override_mosaic_version}" - if any(c in self.override_mosaic_version for c in ["=", ">", "<"]): - pip_str = f"""{self.override_mosaic_version.replace("'","").replace('"','')}""" - else: - pip_str = f"=={self.override_mosaic_version}" - elif mosaic_version is not None: - pip_str = f"=={mosaic_version}" + # - are we configuring for jni so copy? + if self.jni_so_copy: script = script.replace( - SCRIPT_MOSAIC_PIP_VERSION_TOKEN, - SCRIPT_MOSAIC_PIP_VERSION_TOKEN.replace( - "__MOSAIC_PIP_VERSION__", pip_str - ), + SCRIPT_WITH_FUSE_SO_TOKEN, + SCRIPT_WITH_FUSE_SO_TOKEN.replace("0", "1"), ) - # - write the configured init script - with open(script_out_path, "w") as file: - file.write(script) + # - write the configured init script + with open(script_out_path, "w") as file: + file.write(script) # --- end of script config --- @@ -174,13 +74,13 @@ def configure(self) -> bool: if with_resources: CHUNK_SIZE = 1024 * 1024 * 64 # 64MB # - handle jar copy + # 0.4.2 always get the latest release if self.jar_copy: - # url and version details - GITHUB_RELEASE_URL_BASE = ( - "https://github.com/databrickslabs/mosaic/releases" - ) - resource_version = github_version - if github_version == "main": + if not test_mode: + # url and version details + GITHUB_RELEASE_URL_BASE = ( + "https://github.com/databrickslabs/mosaic/releases" + ) latest = None with requests.Session() as s: latest = str( @@ -190,57 +90,77 @@ def configure(self) -> bool: ).content ) resource_version = latest.split("/tag/v_")[1].split('"')[0] - # download jar - jar_filename = f"mosaic-{resource_version}-jar-with-dependencies.jar" - jar_path = f"{self.to_fuse_dir}/{jar_filename}" - with requests.Session() as s: - r = s.get( - f"{GITHUB_RELEASE_URL_BASE}/download/v_{resource_version}/{jar_filename}", - stream=True, - ) - with open(jar_path, "wb") as f: - for ch in r.iter_content(chunk_size=CHUNK_SIZE): - f.write(ch) - resource_statuses[jar_filename] = r.status_code - # - handle so copy - if self.jni_so_copy: - with requests.Session() as s: - for so_filename in [ - "libgdalalljni.so", - "libgdalalljni.so.30", - "libgdalalljni.so.30.0.3", - ]: - so_path = f"{self.to_fuse_dir}/{so_filename}" + # download jar + jar_filename = f"mosaic-{resource_version}-jar-with-dependencies.jar" + jar_path = f"{self.to_fuse_dir}/{jar_filename}" + with requests.Session() as s: r = s.get( - f"{GITHUB_CONTENT_TAG_URL}/resources/gdal/jammy/{so_filename}", + f"{GITHUB_RELEASE_URL_BASE}/download/v_{resource_version}/{jar_filename}", stream=True, ) - with open(so_path, "wb") as f: + with open(jar_path, "wb") as f: for ch in r.iter_content(chunk_size=CHUNK_SIZE): f.write(ch) - resource_statuses[so_filename] = r.status_code + resource_statuses[jar_filename] = r.status_code + else: + # test_mode (use local resources) + lib_path = root_path / 'python' / 'mosaic' / 'lib' + src_jar_path = None + for p in lib_path.iterdir(): + if p.name.startswith('mosaic-') and p.name.endswith('-jar-with-dependencies.jar'): + src_jar_path = p + break + if src_jar_path: + dst_jar_path = Path(f'{self.to_fuse_dir}/{src_jar_path.name}') + dst_jar_path.write_bytes(src_jar_path.read_bytes()) + + # - handle so copy + if self.jni_so_copy: + so_names = [ + "libgdalalljni.so", + "libgdalalljni.so.30", + "libgdalalljni.so.30.0.3" + ] + if not test_mode: + with requests.Session() as s: + for so_filename in so_names: + so_path = f"{self.to_fuse_dir}/{so_filename}" + r = s.get( + f"{GITHUB_CONTENT_TAG_URL}/resources/gdal/jammy/{so_filename}", + stream=True, + ) + with open(so_path, "wb") as f: + for ch in r.iter_content(chunk_size=CHUNK_SIZE): + f.write(ch) + resource_statuses[so_filename] = r.status_code + else: + # test_mode (use local resources) + resources_path = root_path / 'resources' / 'gdal' / 'jammy' + for so_filename in so_names: + src_so_path = resources_path / so_filename + dst_so_path = Path(f'{self.to_fuse_dir}/{so_filename}') + dst_so_path.write_bytes(src_so_path.read_bytes()) # - echo status print(f"::: Install setup complete :::") print( - f"- Settings: 'with_mosaic_pip'? {self.with_mosaic_pip}, 'with_gdal'? {self.with_gdal}, 'with_ubuntugis'? {self.with_ubuntugis}" + f"- Settings: 'jar_copy'? {self.jar_copy}, 'jni_so_copy'? {self.jni_so_copy}" ) + print(f"- Fuse Dir: '{self.to_fuse_dir}'") print( - f" 'override_mosaic_version'? {self.override_mosaic_version}, 'jar_copy'? {self.jar_copy}, 'jni_so_copy'? {self.jni_so_copy}" + f"- Init Script: configured and stored at '{self.script_out_name}'; ", + end="", + ) + print(f"add to your cluster and restart,") + print( + f" more at https://docs.databricks.com/en/init-scripts/cluster-scoped.html" ) - print(f"- Fuse Dir: '{self.to_fuse_dir}'") - if with_script: - print( - f"- Init Script: configured and stored at '{self.script_out_name}'; ", - end="", - ) - print(f"add to your cluster and restart,") - print( - f" more at https://docs.databricks.com/en/init-scripts/cluster-scoped.html" - ) if with_resources: print(f"- Resource(s): copied") print(resource_statuses) + if test_mode: + print(f"- Test Mode files generated") + print(os.listdir(self.to_fuse_dir)) print("\n") if not any(resource_statuses) or all( @@ -253,33 +173,16 @@ def configure(self) -> bool: def setup_fuse_install( to_fuse_dir: str, - with_mosaic_pip: bool, - with_gdal: bool, - with_ubuntugis: bool = False, script_out_name: str = "mosaic-fuse-init.sh", - override_mosaic_version: str = None, jar_copy: bool = True, jni_so_copy: bool = True, -) -> None: + test_mode: bool = False +) -> bool: """ - [1] Copies Mosaic "fat" JAR (with dependencies) into `to_fuse_dir` - - by default, version will match the current mosaic version executing the command, - assuming it is a released version; if `override_mosaic_version` is a single value, - versus a range, that value will be used instead - - this doesn't involve a script unless `with_mosaic_pip=True` or `with_gdal=True` - - if `jar_copy=False`, then the JAR is not copied - [2] if `with_mosaic_pip=True` - - By default, configures script to pip install databricks-mosaic using current mosaic - version executing the command or to `override_mosaic_version` - - this is useful (1) to "pin" to a specific mosaic version, especially if using the - JAR that is also being pre-staged for this version and (2) to consolidate all mosaic - setup into a script and avoid needing to `%pip install databricks-mosaic` in each session - [3] if `with_gdal=True` - - configures script that is a variation of what setup_gdal does with some differences + [1] if `jar_copy=True` + - Copies current mosaic "fat" JAR (with dependencies) into `to_fuse_dir` + [2] if `jni_so_copy=True` - configures to load shared objects from fuse dir (vs wget) - [4] if `with_ubuntugis=True` (assumes `with_gdal=True`) - - configures script to use the GDAL version provided by ubuntugis - - default is False Notes: (a) `to_fuse_dir` can be one of `/Volumes/..`, `/Workspace/..`, `/dbfs/..` (b) Volume paths are the recommended FUSE mount for Databricks in DBR 13.3+ @@ -291,38 +194,24 @@ def setup_fuse_install( ---------- to_fuse_dir : str Path to write out the resource(s) for GDAL installation. - with_mosaic_pip : bool - Whether to configure a script that pip installs databricks-mosaic, - fixed to the current version. - with_gdal : bool - Whether to also configure a script for GDAL and pre-stage GDAL JNI shared object files. - with_ubuntugis : bool - Whether to use ubuntugis ppa for GDAL instead of built-in; - default is False. script_out_name : str name of the script to be written; default is 'mosaic-fuse-init.sh'. - override_mosaic_version: str - String value to use to override the mosaic version to install, - e.g. '==0.4.0' or '<0.5,>=0.4'; - default is None. jar_copy: bool Whether to copy the Mosaic JAR; default is True. jni_so_copy: bool Whether to copy the GDAL JNI shared objects; default is True. + test_mode: bool + Only for unit tests. Returns True unless resources fail to download. ------- """ setup_mgr = SetupMgr( to_fuse_dir, - with_mosaic_pip=with_mosaic_pip, - with_gdal=with_gdal, - with_ubuntugis=with_ubuntugis, script_out_name=script_out_name, - override_mosaic_version=override_mosaic_version, jar_copy=jar_copy, jni_so_copy=jni_so_copy, ) - return setup_mgr.configure() + return setup_mgr.configure(test_mode=test_mode) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 386070400..63c446395 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -3,16 +3,14 @@ import subprocess -__all__ = ["setup_gdal", "enable_gdal"] +__all__ = ["setup_gdal", "enable_gdal", "is_use_checkpoint", "get_checkpoint_path"] def setup_gdal( to_fuse_dir: str = "/Workspace/Shared/geospatial/mosaic/gdal/jammy", - with_mosaic_pip: bool = False, - with_ubuntugis: bool = False, script_out_name: str = "mosaic-gdal-init.sh", - override_mosaic_version: str = None, jni_so_copy: bool = False, + test_mode: bool = False ) -> bool: """ Prepare GDAL init script and shared objects required for GDAL to run on spark. @@ -21,8 +19,8 @@ def setup_gdal( a cluster restart is required. Notes: - (a) This is close in behavior to Mosaic < 0.4 series (prior to DBR 13), with new options - to pip install Mosaic for either ubuntugis gdal (3.4.3) or jammy default (3.4.1) + (a) This is close in behavior to Mosaic < 0.4 series (prior to DBR 13), + now using jammy default (3.4.1) (b) `to_fuse_dir` can be one of `/Volumes/..`, `/Workspace/..`, `/dbfs/..`; however, you should use `setup_fuse_install()` for Volume based installs @@ -31,35 +29,28 @@ def setup_gdal( to_fuse_dir : str Path to write out the init script for GDAL installation; default is '/Workspace/Shared/geospatial/mosaic/gdal/jammy'. - with_mosaic_pip : bool - Whether to configure a script that pip installs databricks-mosaic, - fixed to the current version; default is False. - with_ubuntugis : bool - Whether to use ubuntugis ppa for GDAL instead of built-in; - default is False. script_out_name : str name of the script to be written; default is 'mosaic-gdal-init.sh'. - override_mosaic_version: str - String value to use to override the mosaic version to install, - e.g. '==0.4.0' or '<0.5,>=0.4'; - default is None. + jni_so_copy : bool + if True, copy shared object to fuse dir and config script to use; + default is False + test_mode : bool + Only for unit tests. - Returns True unless resources fail to download. + Returns ------- + True unless resources fail to download. """ setup_mgr = SetupMgr( to_fuse_dir, - with_mosaic_pip=with_mosaic_pip, - with_ubuntugis=with_ubuntugis, script_out_name=script_out_name, - override_mosaic_version=override_mosaic_version, - jni_so_copy=jni_so_copy, + jni_so_copy=jni_so_copy ) - return setup_mgr.configure() + return setup_mgr.configure(test_mode=test_mode) -def enable_gdal(spark: SparkSession) -> None: +def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: """ Enable GDAL at runtime on a cluster with GDAL installed using init script, e.g. generated by setup_gdal() or setup_fuse_install() call. @@ -68,18 +59,26 @@ def enable_gdal(spark: SparkSession) -> None: ---------- spark : pyspark.sql.SparkSession The active SparkSession. + with_checkpoint_path : str + Optional, enable checkpointing; + default is None. Returns ------- - """ try: sc = spark.sparkContext mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - mosaicGDALObject.enableGDAL(spark._jsparkSession) + if with_checkpoint_path: + mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) + else: + mosaicGDALObject.enableGDAL(spark._jsparkSession) + print("GDAL enabled.\n") + if with_checkpoint_path: + print(f"checkpoint path '{with_checkpoint_path}' configured for this session.") result = subprocess.run(["gdalinfo", "--version"], stdout=subprocess.PIPE) print(result.stdout.decode() + "\n") except Exception as e: @@ -87,9 +86,45 @@ def enable_gdal(spark: SparkSession) -> None: "GDAL not enabled. Mosaic with GDAL requires that GDAL be installed on the cluster.\n" ) print( - "You can run setup_gdal() or setup_fuse_install() to generate the init script for install GDAL install.\n" + "You can run `setup_gdal()` or `setup_fuse_install()` to generate the init script for GDAL install.\n" ) print( - "After the init script is generated, you need to add the init script to your cluster and restart to complete the setup.\n" + "After the init script is generated, you need to add it to your cluster and restart.\n" ) print("Error: " + str(e)) + + +def is_use_checkpoint(spark: SparkSession) -> bool: + """ + Parameters + ---------- + spark : pyspark.sql.SparkSession + The active spark session. + + Returns + ------- + Whether MosaicGDAL is configured to use checkpoint. + """ + sc = spark.sparkContext + mosaicGDALObject = getattr( + sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" + ) + return mosaicGDALObject.isUseCheckpoint() + + +def get_checkpoint_path(spark: SparkSession) -> str: + """ + Parameters + ---------- + spark : pyspark.sql.SparkSession + The active spark session. + + Returns + ------- + MosaicGDAL checkpoint path, default is from spark conf. + """ + sc = spark.sparkContext + mosaicGDALObject = getattr( + sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" + ) + return mosaicGDALObject.getCheckpointPath() diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index 85b15ab6b..b8b05ba27 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -65,5 +65,14 @@ def geometry_api(self): def index_system(self): return self._index_system - def enable_gdal(self, spark: SparkSession): - return self._mosaicGDALObject.enableGDAL(spark._jsparkSession) + def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): + if with_checkpoint_path: + return self._mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) + else: + return self._mosaicGDALObject.enableGDAL(spark._jsparkSession) + + def is_use_checkpoint(self): + return self._mosaicGDALObject.isUseCheckpoint() + + def get_checkpoint_path(self): + return self._mosaicGDALObject.getCheckpointPath() diff --git a/python/setup.cfg b/python/setup.cfg index 01ca109a2..167a57389 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -19,7 +19,7 @@ packages = find: python_requires = >=3.10.0 install_requires = keplergl==0.3.2 - h3==3.7.0 + h3<4.0,>=3.7 pyspark<3.5,>=3.4 ipython>=7.22.0 diff --git a/python/test/test_fuse_install.py b/python/test/test_fuse_install.py index 90a3b9c1b..ec0d82745 100644 --- a/python/test/test_fuse_install.py +++ b/python/test/test_fuse_install.py @@ -5,50 +5,38 @@ class TestFuseInstall(SparkTestCase): def setUp(self) -> None: return super().setUp() - def test_setup_no_op(self): - installer = FuseInstaller(False, False, jar_copy=False, jni_so_copy=False) + def test_setup_script_only(self): + installer = FuseInstaller(jar_copy=False, jni_so_copy=False) try: self.assertTrue(installer.do_op()) except Exception: self.fail("Executing `setup_fuse_install()` raised an exception.") - self.assertEqual(len(installer.list_files()), 0) # <- nothing generated + self.assertEqual(len(installer.list_files()),1) # <- script generated - def test_setup_jar_only(self): - installer = FuseInstaller(False, False, jar_copy=True, jni_so_copy=False) + def test_setup_jar(self): + installer = FuseInstaller(jar_copy=True, jni_so_copy=False) try: self.assertTrue(installer.do_op()) except Exception: self.fail("Executing `setup_fuse_install()` raised an exception.") - def test_setup_sh_pip_only(self): - installer = FuseInstaller(True, False, jar_copy=False, jni_so_copy=False) - try: - self.assertTrue(installer.do_op()) - except Exception: - self.fail("Executing `setup_fuse_install()` raised an exception.") - - self.assertEqual(len(installer.list_files()), 1) # <- just init script + self.assertEqual(len(installer.list_files()), 2) # <- init script and jar - def test_setup_sh_gdal(self): - installer = FuseInstaller(False, True, jar_copy=False, jni_so_copy=False) + def test_setup_jni(self): + installer = FuseInstaller(jar_copy=False, jni_so_copy=True) try: self.assertTrue(installer.do_op()) except Exception: self.fail("Executing `setup_fuse_install()` raised an exception.") - self.assertEqual(len(installer.list_files()), 1) # <- just init script + self.assertEqual(len(installer.list_files()), 4) # <- init script and so files - def test_setup_sh_gdal_jni(self): - installer = FuseInstaller(False, True, jar_copy=False, jni_so_copy=True) + def test_setup_all(self): + installer = FuseInstaller(jar_copy=True, jni_so_copy=True) try: self.assertTrue(installer.do_op()) except Exception: self.fail("Executing `setup_fuse_install()` raised an exception.") - def test_setup_sh_all(self): - installer = FuseInstaller(True, True, jar_copy=True, jni_so_copy=True) - try: - self.assertTrue(installer.do_op()) - except Exception: - self.fail("Executing `setup_fuse_install()` raised an exception.") + self.assertEqual(len(installer.list_files()), 5) # <- init script jar, and so files diff --git a/python/test/test_gdal_install.py b/python/test/test_gdal_install.py index f98a3d8b2..2f672fd04 100644 --- a/python/test/test_gdal_install.py +++ b/python/test/test_gdal_install.py @@ -1,5 +1,7 @@ from .utils import SparkTestCase, GDALInstaller +from pathlib import Path + class TestGDALInstall(SparkTestCase): def setUp(self) -> None: @@ -12,14 +14,12 @@ def test_setup_gdal(self): except Exception: self.fail("Copying objects with `setup_gdal()` raised an exception.") - self.assertEqual( - len(installer.list_files()), 4 - ) # <- init script and shared objs + self.assertEqual(len(installer.list_files()),1) # <- init script - try: - installer_result = installer.run_init_script() - self.assertEqual(installer_result, 0) - gdalinfo_result = installer.test_gdalinfo() - self.assertEqual(gdalinfo_result, "GDAL 3.4.1, released 2021/12/27\n") - except Exception: - self.fail("Execution of GDAL init script raised an exception.") + # try: + # installer_result = installer.run_init_script() + # self.assertEqual(installer_result, 0) + # gdalinfo_result = installer.test_gdalinfo() + # self.assertEqual(gdalinfo_result, "GDAL 3.4.1, released 2021/12/27\n") + # except Exception: + # self.fail("Execution of GDAL init script raised an exception.") diff --git a/python/test/utils/setup_fuse.py b/python/test/utils/setup_fuse.py index 5bdc2b472..ac2fae795 100644 --- a/python/test/utils/setup_fuse.py +++ b/python/test/utils/setup_fuse.py @@ -8,11 +8,9 @@ class FuseInstaller: - def __init__(self, with_mosaic_pip, with_gdal, jar_copy=False, jni_so_copy=False): + def __init__(self, jar_copy=False, jni_so_copy=False): self._site_packages = working_set.find(Requirement("keplergl")).location self._temp_dir = tempfile.mkdtemp() - self.with_mosaic_pip = with_mosaic_pip - self.with_gdal = with_gdal self.jar_copy = jar_copy self.jni_so_copy = jni_so_copy self.FUSE_INIT_SCRIPT_FILENAME = "mosaic-fuse-init.sh" @@ -23,12 +21,10 @@ def __del__(self): def do_op(self) -> bool: return api.setup_fuse_install( self._temp_dir, - self.with_mosaic_pip, - self.with_gdal, jar_copy=self.jar_copy, jni_so_copy=self.jni_so_copy, - override_mosaic_version="main", script_out_name=self.FUSE_INIT_SCRIPT_FILENAME, + test_mode=True ) def run_init_script(self) -> int: diff --git a/python/test/utils/setup_gdal.py b/python/test/utils/setup_gdal.py index a62c4207e..6786309c7 100644 --- a/python/test/utils/setup_gdal.py +++ b/python/test/utils/setup_gdal.py @@ -19,26 +19,26 @@ def __del__(self): def do_op(self) -> bool: return api.setup_gdal( to_fuse_dir=self._temp_dir, - override_mosaic_version="main", script_out_name=self.GDAL_INIT_SCRIPT_FILENAME, - jni_so_copy=True, + jni_so_copy=False, + test_mode=True ) - def run_init_script(self) -> int: - gdal_install_script_target = os.path.join( - self._temp_dir, self.GDAL_INIT_SCRIPT_FILENAME - ) - os.chmod(gdal_install_script_target, mode=0x744) - result = subprocess.run( - [gdal_install_script_target], - stdout=subprocess.DEVNULL, - env=dict(os.environ, DATABRICKS_ROOT_VIRTUALENV_ENV=self._site_packages), - ) - return result.returncode + # def run_init_script(self) -> int: + # gdal_install_script_target = os.path.join( + # self._temp_dir, self.GDAL_INIT_SCRIPT_FILENAME + # ) + # os.chmod(gdal_install_script_target, mode=0x744) + # result = subprocess.run( + # [gdal_install_script_target], + # stdout=subprocess.DEVNULL, + # env=dict(os.environ, DATABRICKS_ROOT_VIRTUALENV_ENV=self._site_packages), + # ) + # return result.returncode def list_files(self) -> list[str]: return os.listdir(self._temp_dir) - def test_gdalinfo(self) -> str: - result = subprocess.run(["gdalinfo", "--version"], stdout=subprocess.PIPE) - return result.stdout.decode() + # def test_gdalinfo(self) -> str: + # result = subprocess.run(["gdalinfo", "--version"], stdout=subprocess.PIPE) + # return result.stdout.decode() diff --git a/python/test/utils/spark_test_case.py b/python/test/utils/spark_test_case.py index 640713ba7..fca3b5dec 100644 --- a/python/test/utils/spark_test_case.py +++ b/python/test/utils/spark_test_case.py @@ -32,22 +32,22 @@ def setUpClass(cls) -> None: .config("spark.driver.memory", "4g") .config( "spark.driver.extraJavaOptions", - "-Dorg.apache.logging.log4j.level=FATAL", + "-Dorg.apache.logging.log4j.level=ERROR", ) .config( "spark.executor.extraJavaOptions", - "-Dorg.apache.logging.log4j.level=FATAL", + "-Dorg.apache.logging.log4j.level=ERROR", ) .getOrCreate() ) cls.spark.conf.set("spark.databricks.labs.mosaic.jar.autoattach", "false") cls.spark.conf.set("spark.databricks.labs.mosaic.raster.tmp.prefix", tmp_dir) cls.spark.conf.set("spark.databricks.labs.mosaic.raster.checkpoint", check_dir) - cls.spark.sparkContext.setLogLevel("FATAL") + cls.spark.sparkContext.setLogLevel("ERROR") @classmethod def tearDownClass(cls) -> None: cls.spark.stop() def setUp(self) -> None: - self.spark.sparkContext.setLogLevel("FATAL") + self.spark.sparkContext.setLogLevel("ERROR") diff --git a/scripts/0.4.2/mosaic-gdal-init.sh b/scripts/0.4.2/mosaic-gdal-init.sh new file mode 100644 index 000000000..9ee60f8c2 --- /dev/null +++ b/scripts/0.4.2/mosaic-gdal-init.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# -- +# This is for Ubuntu 22.04 (Jammy) +# [1] corresponds to DBR 13+ +# [2] jammy offers GDAL 3.4.1 +# [3] see Mosaic functions (python) to configure +# and pre-stage resources: +# - setup_fuse_install(...) and +# - setup_gdal(...) +# [4] this script has conditional logic based on variables +# [5] stripped back in Mosaic 0.4.2+ +# Author: Michael Johns | mjohns@databricks.com +# Last Modified: 29 APR, 2024 + +# TEMPLATE-BASED REPLACEMENT +# - can also be manually specified +FUSE_DIR='__FUSE_DIR__' + +# CONDITIONAL LOGIC +WITH_FUSE_SO=0 # <- use fuse dir shared objects (vs wget) + +# refresh package info +# 0.4.2 - added "-y" +sudo apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-backports main universe multiverse restricted" +sudo apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-updates main universe multiverse restricted" +sudo apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-security main multiverse restricted universe" +sudo apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main multiverse restricted universe" +sudo apt-get update -y + +# install natives +# 0.4.2 added package lock wait (can change value) +sudo apt-get -o DPkg::Lock::Timeout=-1 install -y unixodbc libcurl3-gnutls libsnappy-dev libopenjp2-7 +sudo apt-get -o DPkg::Lock::Timeout=-1 install -y gdal-bin libgdal-dev python3-numpy python3-gdal + +# pip install gdal +# matches jammy version +pip install --upgrade pip +pip install gdal==3.4.1 + +# add pre-build JNI shared object to the path +if [ $WITH_FUSE_SO == 1 ] +then + # copy from fuse dir with no-clobber + sudo cp -n $FUSE_DIR/libgdalalljni.so /usr/lib + sudo cp -n $FUSE_DIR/libgdalalljni.so.30 /usr/lib + sudo cp -n $FUSE_DIR/libgdalalljni.so.30.0.3 /usr/lib +else + # copy from github + GITHUB_REPO_PATH=databrickslabs/mosaic/main/resources/gdal/jammy + sudo wget -nv -P /usr/lib -nc https://raw.githubusercontent.com/$GITHUB_REPO_PATH/libgdalalljni.so + sudo wget -nv -P /usr/lib -nc https://raw.githubusercontent.com/$GITHUB_REPO_PATH/libgdalalljni.so.30 + sudo wget -nv -P /usr/lib -nc https://raw.githubusercontent.com/$GITHUB_REPO_PATH/libgdalalljni.so.30.0.3 +fi diff --git a/scripts/mosaic-docker.sh b/scripts/mosaic-docker.sh index 85c867c6c..6a508eb37 100644 --- a/scripts/mosaic-docker.sh +++ b/scripts/mosaic-docker.sh @@ -1 +1,13 @@ -docker run --name mosaic-dev --rm -p 5005:5005 -v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" -it mosaic-dev:jdk8-gdal3.4-spark3.2 /bin/bash \ No newline at end of file +# [1] checkout https://github.com/r3stl355/mosaic-docker +# - you need to first build the image (under mosaic-docker repo) for Mosaic 0.4 series: +# `GDAL_VERSION=3.4.1 OPENJDK_VERSION=11 LIBPROJ_VERSION=7.1.0 SPARK_VERSION=3.4.0 CORES=4 ./build` +# - produces image 'jdk11-gdal3.4.1-spark3.4' +# [2] run this in root of (mosaic repo), e.g. `sh scripts/mosaic-docker.sh` +# - for IDE driven or Jupyter notebook testing +# [3] if you want to run tests within the container shell +# - [a] in pom - comment out scoverage (scala coverage) and add false to scalatest +# - [b] after launch run `mvn -DskipTests package` from the container and `pip install .` from python +# - [c] after launch type `unset JAVA_TOOL_OPTIONS` from the container +# - [d] then can test e.g. `mvn test -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and +# `python3 -m unittest mosaic test/test_fuse_install.py` from python +docker run --platform linux/amd64 --name mosaic-dev --rm -p 5005:5005 -p 8888:8888 -v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" -it mosaic-dev:ubuntu22-gdal3.4.1-spark3.4.0 /bin/bash \ No newline at end of file diff --git a/scripts/mosaic-gdal-init.sh b/scripts/mosaic-gdal-init.sh index 950b0ffe9..12c55c034 100644 --- a/scripts/mosaic-gdal-init.sh +++ b/scripts/mosaic-gdal-init.sh @@ -1,17 +1,19 @@ #!/bin/bash -# -- +# -- +# SCRIPT FOR 0.4.0 and 0.4.1 +# NOT USED in 0.4.2+ # This is for Ubuntu 22.04 (Jammy) # [1] corresponds to DBR 13+ # [2] jammy offers GDAL 3.4.1 (default) -# - optional: Ubuntugis offers GDAL 3.4.3, -# with additional ppa added +# - backported: ignoring ubuntugis +# - repo changed to incompatible version # [3] see Mosaic functions (python) to configure # and pre-stage resources: # - setup_fuse_install(...) and # - setup_gdal(...) # [4] this script has conditional logic based on variables # Author: Michael Johns | mjohns@databricks.com -# Last Modified: 05 JAN, 2024 +# Last Modified: 29 APR, 2024 # TEMPLATE-BASED REPLACEMENT # - can also be manually specified @@ -36,11 +38,6 @@ then sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-updates main universe multiverse restricted" sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-security main multiverse restricted universe" sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main multiverse restricted universe" - if [ $WITH_UBUNTUGIS == 1 ] - then - sudo add-apt-repository ppa:ubuntugis/ppa - GDAL_VERSION=3.4.3 - fi sudo apt-get update -y # - install natives diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index 3517f9368..68061a59c 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -50,6 +50,11 @@ object GDAL { /** @return Returns the name of the raster API. */ def name: String = "GDAL" + def enable(spark: SparkSession): Unit = { + val mosaicConfig = MosaicExpressionConfig(spark) + enable(mosaicConfig) + } + /** * Enables GDAL on the worker nodes. GDAL requires drivers to be registered * on the worker nodes. This method registers all the drivers on the worker @@ -61,38 +66,23 @@ object GDAL { gdal.AllRegister() } - def enable(spark: SparkSession): Unit = { - val mosaicConfig = MosaicExpressionConfig(spark) - enable(mosaicConfig) - } - /** - * Returns the extension of the given driver. - * @param driverShortName - * The short name of the driver. For example, GTiff. - * @return - * Returns the extension of the driver. For example, tif. - */ - def getExtension(driverShortName: String): String = { - val driver = gdal.GetDriverByName(driverShortName) - val result = driver.GetMetadataItem("DMD_EXTENSION") - val toReturn = if (result == null) FormatLookup.formats(driverShortName) else result - driver.delete() - toReturn - } - - /** - * Reads a raster from the given input data. If it is a byte array, it will - * read the raster from the byte array. If it is a string, it will read the - * raster from the path. If the path is a zip file, it will read the raster - * from the zip file. If the path is a subdataset, it will read the raster - * from the subdataset. + * Reads a raster from the given input data. + * - If it is a byte array, it will read the raster from the byte array. + * - If it is a string, it will read the raster from the path. + * - Path may be a zip file. + * - Path may be a subdataset. * * @param inputRaster - * The path to the raster. This path has to be a path to a single raster. - * Rasters with subdatasets are supported. + * The raster, based on inputDT. Path based rasters with subdatasets + * are supported. + * @param createInfo + * Mosaic creation info of the raster. Note: This is not the same as the + * metadata of the raster. This is not the same as GDAL creation options. + * @param inputDT + * [[DataType]] for the raster, either [[StringType]] or [[BinaryType]]. * @return - * Returns a Raster object. + * Returns a [[MosaicRasterGDAL]] object. */ def readRaster( inputRaster: Any, @@ -101,7 +91,9 @@ object GDAL { ): MosaicRasterGDAL = { inputDT match { case StringType => - MosaicRasterGDAL.readRaster(createInfo) + // 0.4.2 - modified to make sure createInfo path matches + val path = inputRaster.asInstanceOf[String] + MosaicRasterGDAL.readRaster(createInfo + ("path" -> path)) case BinaryType => val bytes = inputRaster.asInstanceOf[Array[Byte]] val raster = MosaicRasterGDAL.readRaster(bytes, createInfo) @@ -123,8 +115,12 @@ object GDAL { * * @param generatedRasters * The rasters to write. + * @param rasterDT + * The type of raster to write. + * - if string write to checkpoint + * - otherwise, write to bytes * @return - * Returns the paths of the written rasters. + * Returns the written rasters (bytes or string). */ def writeRasters(generatedRasters: Seq[MosaicRasterGDAL], rasterDT: DataType): Seq[Any] = { generatedRasters.map(raster => @@ -133,7 +129,7 @@ object GDAL { case StringType => val uuid = UUID.randomUUID().toString val extension = GDAL.getExtension(raster.getDriversShortName) - val writePath = s"${MosaicGDAL.checkpointPath}/$uuid.$extension" + val writePath = s"${MosaicGDAL.getCheckpointPath()}/$uuid.$extension" val outPath = raster.writeToPath(writePath) RasterCleaner.dispose(raster) UTF8String.fromString(outPath) @@ -148,6 +144,21 @@ object GDAL { ) } + /** + * Returns the extension of the given driver. + * @param driverShortName + * The short name of the driver. For example, GTiff. + * @return + * Returns the extension of the driver. For example, tif. + */ + def getExtension(driverShortName: String): String = { + val driver = gdal.GetDriverByName(driverShortName) + val result = driver.GetMetadataItem("DMD_EXTENSION") + val toReturn = if (result == null) FormatLookup.formats(driverShortName) else result + driver.delete() + toReturn + } + /** * Reads a raster from the given path. Assume not zipped file. If zipped, * use raster(path, vsizip = true) @@ -155,8 +166,10 @@ object GDAL { * @param path * The path to the raster. This path has to be a path to a single raster. * Rasters with subdatasets are supported. + * @param parentPath + * Parent path can help with detecting driver. * @return - * Returns a Raster object. + * Returns a [[MosaicRasterGDAL]] object. */ def raster(path: String, parentPath: String): MosaicRasterGDAL = { val createInfo = Map("path" -> path, "parentPath" -> parentPath) @@ -169,8 +182,12 @@ object GDAL { * * @param content * The byte array to read the raster from. + * @param parentPath + * Parent path can help with detecting driver. + * @param driverShortName + * Driver to use in reading. * @return - * Returns a Raster object. + * Returns a [[MosaicRasterGDAL]] object. */ def raster(content: Array[Byte], parentPath: String, driverShortName: String): MosaicRasterGDAL = { val createInfo = Map("parentPath" -> parentPath, "driver" -> driverShortName) @@ -186,8 +203,10 @@ object GDAL { * Rasters with subdatasets are supported. * @param bandIndex * The index of the band to read from the raster. + * @param parentPath + * Parent path can help with detecting driver. * @return - * Returns a Raster band object. + * Returns a [[MosaicRasterBandGDAL]] object. */ def band(path: String, bandIndex: Int, parentPath: String): MosaicRasterBandGDAL = { val createInfo = Map("path" -> path, "parentPath" -> parentPath) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala index b399fa0a2..988a5719f 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala @@ -22,7 +22,14 @@ import java.util.{Locale, Vector => JVector} import scala.collection.JavaConverters.dictionaryAsScalaMapConverter import scala.util.{Failure, Success, Try} -/** GDAL implementation of the MosaicRaster trait. */ +/** + * Mosaic's GDAL internal object for rasters. + * - Constructor invoked from various functions, including the + * [[MosaicRasterGDAL]] scala companion object. + * - When invoked, raster is already a GDAL [[Dataset]]. + * - "path" expected to be either "no_path" or fuse accessible. + * - same for "parent_path" + */ //noinspection DuplicatedCode case class MosaicRasterGDAL( raster: Dataset, @@ -31,11 +38,8 @@ case class MosaicRasterGDAL( ) extends RasterWriter with RasterCleaner { - def path: String = createInfo("path") - - def parentPath: String = createInfo("parentPath") - - def driverShortName: Option[String] = createInfo.get("driver") + // Factory for creating CRS objects + protected val crsFactory: CRSFactory = new CRSFactory def getWriteOptions: MosaicRasterWriteOptions = MosaicRasterWriteOptions(this) @@ -47,114 +51,134 @@ case class MosaicRasterGDAL( compression } - def getSpatialReference: SpatialReference = { - val spatialRef = - if (raster != null) { - raster.GetSpatialRef - } else { - val tmp = refresh() - val result = tmp.raster.GetSpatialRef - dispose(tmp) - result - } - if (spatialRef == null) { - MosaicGDAL.WSG84 - } else { - spatialRef - } - } + ///////////////////////////////////////// + // FROM createInfo + ///////////////////////////////////////// - def isSubDataset: Boolean = { - val isSubdataset = PathUtils.isSubdataset(path) - isSubdataset - } + /** @return The raster's path on disk. */ + def path: String = createInfo("path") - // Factory for creating CRS objects - protected val crsFactory: CRSFactory = new CRSFactory + /** @return The raster's path on disk. Usually this is a parent file for the tile. */ + def parentPath: String = createInfo("parentPath") - /** - * @return - * The raster's driver short name. - */ - def getDriversShortName: String = - driverShortName.getOrElse( - Try(raster.GetDriver().getShortName).getOrElse("NONE") - ) + /** @return The driver as option. */ + def driverShortName: Option[String] = createInfo.get("driver") - /** - * @return - * The raster's path on disk. Usually this is a parent file for the tile. - */ - def getParentPath: String = parentPath + ///////////////////////////////////////// + // GDAL Dataset + ///////////////////////////////////////// /** - * @return - * The diagonal size of a raster. - */ - def diagSize: Double = math.sqrt(xSize * xSize + ySize * ySize) - - /** @return Returns pixel x size. */ - def pixelXSize: Double = getGeoTransform(1) - - /** @return Returns pixel y size. */ - def pixelYSize: Double = getGeoTransform(5) + * For the provided geometry and CRS, get bounding box polygon. + * @param geometryAPI + * Default is JTS. + * @param destCRS + * CRS for the bbox, default is [[MosaicGDAL.WSG84]]. + * @return + * Returns [[MosaicGeometry]] representing bounding box polygon. + */ + def bbox(geometryAPI: GeometryAPI, destCRS: SpatialReference = MosaicGDAL.WSG84): MosaicGeometry = { + val gt = getGeoTransform - /** @return Returns the origin x coordinate. */ - def originX: Double = getGeoTransform(0) + val sourceCRS = getSpatialReference + val transform = new osr.CoordinateTransformation(sourceCRS, destCRS) - /** @return Returns the origin y coordinate. */ - def originY: Double = getGeoTransform(3) + val bbox = geometryAPI.geometry( + Seq( + Seq(gt(0), gt(3)), + Seq(gt(0) + gt(1) * xSize, gt(3)), + Seq(gt(0) + gt(1) * xSize, gt(3) + gt(5) * ySize), + Seq(gt(0), gt(3) + gt(5) * ySize) + ).map(geometryAPI.fromCoords), + POLYGON + ) - /** @return Returns the max x coordinate. */ - def xMax: Double = originX + xSize * pixelXSize + val geom1 = org.gdal.ogr.ogr.CreateGeometryFromWkb(bbox.toWKB) + geom1.Transform(transform) - /** @return Returns the max y coordinate. */ - def yMax: Double = originY + ySize * pixelYSize + geometryAPI.geometry(geom1.ExportToWkb(), "WKB") + } - /** @return Returns the min x coordinate. */ - def xMin: Double = originX + /** @return The diagonal size of a raster. */ + def diagSize: Double = math.sqrt(xSize * xSize + ySize * ySize) - /** @return Returns the min y coordinate. */ - def yMin: Double = originY + // noinspection ZeroIndexToHead + /** @return Returns the raster's extent as a Seq(xmin, ymin, xmax, ymax). */ + def extent: Seq[Double] = { + val minX = getGeoTransform(0) + val maxY = getGeoTransform(3) + val maxX = minX + getGeoTransform(1) * xSize + val minY = maxY + getGeoTransform(5) * ySize + Seq(minX, minY, maxX, maxY) + } - /** @return Returns the diagonal size of a pixel. */ - def pixelDiagSize: Double = math.sqrt(pixelXSize * pixelXSize + pixelYSize * pixelYSize) + /** @return Returns the raster's geotransform as a Seq. */ + def getGeoTransform: Array[Double] = raster.GetGeoTransform() - /** @return Returns file extension. */ - def getRasterFileExtension: String = GDAL.getExtension(getDriversShortName) + /** + * @note + * If memory size is -1 this will destroy the raster and you will need to + * refresh it to use it again. + * @return + * Returns the amount of memory occupied by the file in bytes. + */ + def getMemSize: Long = { + if (memSize == -1) { + val toRead = if (path.startsWith("/vsizip/")) path.replace("/vsizip/", "") else path + if (Files.notExists(Paths.get(toRead))) { + throw new Exception(s"File not found: ${gdal.GetLastErrorMsg()}") + } + Files.size(Paths.get(toRead)) + } else { + memSize + } - /** @return Returns the raster's bands as a Seq. */ - def getBands: Seq[MosaicRasterBandGDAL] = (1 to numBands).map(getBand) + } /** - * Flushes the cache of the raster. This is needed to ensure that the - * raster is written to disk. This is needed for operations like - * RasterProject. - * @return - * Returns the raster object. - */ - def flushCache(): MosaicRasterGDAL = { - // Note: Do not wrap GDAL objects into Option - if (getRaster != null) getRaster.FlushCache() - this.destroy() - this.refresh() + * Get spatial reference. + * - may be already set on the raster + * - if not, load and detect it. + * - defaults to [[MosaicGDAL.WSG84]] + * @return + * Raster's [[SpatialReference]] object. + */ + def getSpatialReference: SpatialReference = { + val spatialRef = + if (raster != null) { + raster.GetSpatialRef + } else { + val tmp = refresh() + val result = tmp.raster.GetSpatialRef + dispose(tmp) + result + } + if (spatialRef == null) { + MosaicGDAL.WSG84 + } else { + spatialRef + } } /** - * Opens a raster from a file system path. - * @param path - * The path to the raster file. - * @return - * A MosaicRaster object. - */ - def openRaster(path: String): Dataset = { - MosaicRasterGDAL.openRaster(path, driverShortName) + * @return + * True if the raster is empty, false otherwise. May be expensive to + * compute since it requires reading the raster and computing statistics. + */ + def isEmpty: Boolean = { + val bands = getBands + if (bands.isEmpty) { + subdatasets.values + .filter(_.toLowerCase(Locale.ROOT).startsWith(getDriversShortName.toLowerCase(Locale.ROOT))) + .flatMap(bp => readRaster(createInfo + ("path" -> bp)).getBands) + .takeWhile(_.isEmpty) + .nonEmpty + } else { + bands.takeWhile(_.isEmpty).nonEmpty + } } - /** - * @return - * Returns the raster's metadata as a Map. - */ + /** @return Returns the raster's metadata as a Map. */ def metadata: Map[String, String] = { Option(raster.GetMetadataDomainList()) .map(_.toArray) @@ -171,69 +195,42 @@ case class MosaicRasterGDAL( .getOrElse(Map.empty[String, String]) } - /** - * @return - * Returns the raster's subdatasets as a Map. - */ - def subdatasets: Map[String, String] = { - val dict = Try(raster.GetMetadata_Dict("SUBDATASETS")) - .getOrElse(new java.util.Hashtable[String, String]()) - val subdatasetsMap = Option(dict) - .map(_.asScala.toMap.asInstanceOf[Map[String, String]]) - .getOrElse(Map.empty[String, String]) - val keys = subdatasetsMap.keySet - val sanitizedParentPath = PathUtils.getCleanPath(parentPath) - keys.flatMap(key => - if (key.toUpperCase(Locale.ROOT).contains("NAME")) { - val path = subdatasetsMap(key) - val pieces = path.split(":") - Seq( - key -> pieces.last, - s"${pieces.last}_tmp" -> path, - pieces.last -> s"${pieces.head}:$sanitizedParentPath:${pieces.last}" - ) - } else Seq(key -> subdatasetsMap(key)) - ).toMap + /** @return Returns the raster's number of bands. */ + def numBands: Int = { + val bandCount = Try(raster.GetRasterCount()) + bandCount match { + case Success(value) => value + case Failure(_) => 0 + } } - /** - * @return - * Returns the raster's SRID. This is the EPSG code of the raster's CRS. - */ - def SRID: Int = { - Try(crsFactory.readEpsgFromParameters(proj4String)) - .filter(_ != null) - .getOrElse("EPSG:0") - .split(":") - .last - .toInt - } + /** @return Returns the origin x coordinate. */ + def originX: Double = getGeoTransform(0) + + /** @return Returns the origin y coordinate. */ + def originY: Double = getGeoTransform(3) /** - * @return - * Sets the raster's SRID. This is the EPSG code of the raster's CRS. - */ - def setSRID(srid: Int): MosaicRasterGDAL = { - val srs = new osr.SpatialReference() - srs.ImportFromEPSG(srid) - raster.SetSpatialRef(srs) - val driver = raster.GetDriver() - val newPath = PathUtils.createTmpFilePath(GDAL.getExtension(getDriversShortName)) - driver.CreateCopy(newPath, raster) - val newRaster = MosaicRasterGDAL.openRaster(newPath, driverShortName) - dispose(this) - val createInfo = Map( - "path" -> newPath, - "parentPath" -> parentPath, - "driver" -> getDriversShortName - ) - MosaicRasterGDAL(newRaster, createInfo, -1) + * Opens a raster from a file system path. + * @param path + * The path to the raster file. + * @return + * A GDAL [[Dataset]] object. + */ + def pathAsDataset(path: String): Dataset = { + MosaicRasterGDAL.pathAsDataset(path, driverShortName) } - /** - * @return - * Returns the raster's proj4 string. - */ + /** @return Returns the diagonal size of a pixel. */ + def pixelDiagSize: Double = math.sqrt(pixelXSize * pixelXSize + pixelYSize * pixelYSize) + + /** @return Returns pixel x size. */ + def pixelXSize: Double = getGeoTransform(1) + + /** @return Returns pixel y size. */ + def pixelYSize: Double = getGeoTransform(5) + + /** @return Returns the raster's proj4 string. */ def proj4String: String = { try { @@ -243,68 +240,124 @@ case class MosaicRasterGDAL( } } - /** - * @param bandId - * The band index to read. - * @return - * Returns the raster's band as a MosaicRasterBand object. - */ - def getBand(bandId: Int): MosaicRasterBandGDAL = { - if (bandId > 0 && numBands >= bandId) { - MosaicRasterBandGDAL(raster.GetRasterBand(bandId), bandId) - } else { - throw new ArrayIndexOutOfBoundsException() - } + /** @return Sets the raster's SRID. This is the EPSG code of the raster's CRS. */ + def setSRID(srid: Int): MosaicRasterGDAL = { + val srs = new osr.SpatialReference() + srs.ImportFromEPSG(srid) + raster.SetSpatialRef(srs) + val driver = raster.GetDriver() + val tmpPath = PathUtils.createTmpFilePath(GDAL.getExtension(getDriversShortName)) + driver.CreateCopy(tmpPath, raster) + val newRaster = MosaicRasterGDAL.pathAsDataset(tmpPath, driverShortName) + dispose(this) + val newCreateInfo = Map( + "path" -> tmpPath, + "parentPath" -> parentPath, + "driver" -> getDriversShortName + ) + MosaicRasterGDAL(newRaster, newCreateInfo, -1) } - /** - * @return - * Returns the raster's number of bands. - */ - def numBands: Int = { - val bandCount = Try(raster.GetRasterCount()) - bandCount match { - case Success(value) => value - case Failure(_) => 0 - } + /** @return Returns the raster's SRID. This is the EPSG code of the raster's CRS. */ + def SRID: Int = { + Try(crsFactory.readEpsgFromParameters(proj4String)) + .filter(_ != null) + .getOrElse("EPSG:0") + .split(":") + .last + .toInt } - // noinspection ZeroIndexToHead - /** - * @return - * Returns the raster's extent as a Seq(xmin, ymin, xmax, ymax). - */ - def extent: Seq[Double] = { - val minX = getGeoTransform(0) - val maxY = getGeoTransform(3) - val maxX = minX + getGeoTransform(1) * xSize - val minY = maxY + getGeoTransform(5) * ySize - Seq(minX, minY, maxX, maxY) - } + /** @return Returns the min x coordinate. */ + def xMin: Double = originX - /** - * @return - * Returns x size of the raster. - */ + /** @return Returns the max x coordinate. */ + def xMax: Double = originX + xSize * pixelXSize + + /** @return Returns x size of the raster. */ def xSize: Int = raster.GetRasterXSize - /** - * @return - * Returns y size of the raster. - */ + /** @return Returns the min y coordinate. */ + def yMin: Double = originY + + /** @return Returns the max y coordinate. */ + def yMax: Double = originY + ySize * pixelYSize + + /** @return Returns y size of the raster. */ def ySize: Int = raster.GetRasterYSize + ///////////////////////////////////////// + // Apply Functions + ///////////////////////////////////////// + /** - * @return - * Returns the raster's geotransform as a Seq. - */ - def getGeoTransform: Array[Double] = raster.GetGeoTransform() + * Applies a convolution filter to the raster. + * - operator applied per band. + * @param kernel + * [[Array[Double]]] kernel to apply to the raster. + * @return + * [[MosaicRasterGDAL]] object. + */ + def convolve(kernel: Array[Array[Double]]): MosaicRasterGDAL = { + val tmpPath = PathUtils.createTmpFilePath(getRasterFileExtension) + + this.raster + .GetDriver() + .CreateCopy(tmpPath, this.raster, 1) + .delete() + + val outputRaster = gdal.Open(tmpPath, GF_Write) + + for (bandIndex <- 1 to this.numBands) { + val band = this.getBand(bandIndex) + val outputBand = outputRaster.GetRasterBand(bandIndex) + band.convolve(kernel, outputBand) + } + + val newCreateInfo = Map( + "path" -> tmpPath, + "parentPath" -> parentPath, + "driver" -> getDriversShortName + ) + + val result = MosaicRasterGDAL(outputRaster, newCreateInfo, this.memSize) + result.flushCache() + } /** - * @return - * Underlying GDAL raster object. - */ - def getRaster: Dataset = this.raster + * Applies a filter to the raster. + * @param kernelSize + * Number of pixels to compare; it must be odd. + * @param operation + * Op to apply, e.g. ‘avg’, ‘median’, ‘mode’, ‘max’, ‘min’. + * @return + * Returns a new [[MosaicRasterGDAL]] with the filter applied. + */ + def filter(kernelSize: Int, operation: String): MosaicRasterGDAL = { + val tmpPath = PathUtils.createTmpFilePath(getRasterFileExtension) + + this.raster + .GetDriver() + .CreateCopy(tmpPath, this.raster, 1) + .delete() + + val outputRaster = gdal.Open(tmpPath, GF_Write) + + for (bandIndex <- 1 to this.numBands) { + val band = this.getBand(bandIndex) + val outputBand = outputRaster.GetRasterBand(bandIndex) + band.filter(kernelSize, operation, outputBand) + } + + val newCreateInfo = Map( + "path" -> tmpPath, + "parentPath" -> parentPath, + "driver" -> getDriversShortName + ) + + val result = MosaicRasterGDAL(outputRaster, newCreateInfo, this.memSize) + result.flushCache() + } /** * Applies a function to each band of the raster. @@ -316,159 +369,219 @@ case class MosaicRasterGDAL( def transformBands[T](f: MosaicRasterBandGDAL => T): Seq[T] = for (i <- 1 to numBands) yield f(getBand(i)) /** + * Applies clipping to get cellid raster. + * @param cellID + * Clip the raster based on the cell id geometry. + * @param indexSystem + * Default is H3. + * @param geometryAPI + * Default is JTS. * @return - * Returns MosaicGeometry representing bounding box of the raster. + * Returns [[MosaicRasterGDAL]] for a given cell ID. Used for tessellation. */ - def bbox(geometryAPI: GeometryAPI, destCRS: SpatialReference = MosaicGDAL.WSG84): MosaicGeometry = { - val gt = getGeoTransform + def getRasterForCell(cellID: Long, indexSystem: IndexSystem, geometryAPI: GeometryAPI): MosaicRasterGDAL = { + val cellGeom = indexSystem.indexToGeometry(cellID, geometryAPI) + val geomCRS = indexSystem.osrSpatialRef + RasterClipByVector.clip(this, cellGeom, geomCRS, geometryAPI) + } - val sourceCRS = getSpatialReference - val transform = new osr.CoordinateTransformation(sourceCRS, destCRS) + ///////////////////////////////////////// + // Subdataset Functions + ///////////////////////////////////////// - val bbox = geometryAPI.geometry( - Seq( - Seq(gt(0), gt(3)), - Seq(gt(0) + gt(1) * xSize, gt(3)), - Seq(gt(0) + gt(1) * xSize, gt(3) + gt(5) * ySize), - Seq(gt(0), gt(3) + gt(5) * ySize) - ).map(geometryAPI.fromCoords), - POLYGON + /** + * Get a particular subdataset by name. + * @param subsetName + * The name of the subdataset to get. + * @return + * Returns [[MosaicRasterGDAL]]. + */ + def getSubdataset(subsetName: String): MosaicRasterGDAL = { + val sPath = subdatasets.get(s"${subsetName}_tmp") + val gdalError = gdal.GetLastErrorMsg() + val error = sPath match { + case Some(_) => "" + case None => s""" + |Subdataset $subsetName not found! + |Available subdatasets: + | ${subdatasets.keys.filterNot(_.startsWith("SUBDATASET_")).mkString(", ")} + | """.stripMargin + } + val sanitized = PathUtils.getCleanPath(sPath.getOrElse(PathUtils.NO_PATH_STRING)) + val subdatasetPath = PathUtils.getSubdatasetPath(sanitized) + + val ds = pathAsDataset(subdatasetPath) + // Avoid costly IO to compute MEM size here + // It will be available when the raster is serialized for next operation + // If value is needed then it will be computed when getMemSize is called + val newCreateInfo = Map( + "path" -> sPath.getOrElse(PathUtils.NO_PATH_STRING), + "parentPath" -> parentPath, + "driver" -> getDriversShortName, + "last_error" -> { + if (gdalError.nonEmpty || error.nonEmpty) s""" + |GDAL Error: $gdalError + |$error + |""".stripMargin + else "" + } ) + MosaicRasterGDAL(ds, newCreateInfo, -1) + } - val geom1 = org.gdal.ogr.ogr.CreateGeometryFromWkb(bbox.toWKB) - geom1.Transform(transform) + /** + * Test if path is a subdataset. + * @return boolean + */ + def isSubDataset: Boolean = { + val isSubdataset = PathUtils.isSubdataset(path) + isSubdataset + } - geometryAPI.geometry(geom1.ExportToWkb(), "WKB") + /** @return Returns the raster's subdatasets as a Map. */ + def subdatasets: Map[String, String] = { + val dict = Try(raster.GetMetadata_Dict("SUBDATASETS")) + .getOrElse(new java.util.Hashtable[String, String]()) + val subdatasetsMap = Option(dict) + .map(_.asScala.toMap.asInstanceOf[Map[String, String]]) + .getOrElse(Map.empty[String, String]) + val keys = subdatasetsMap.keySet + val sanitizedParentPath = PathUtils.getCleanPath(parentPath) + keys.flatMap(key => + if (key.toUpperCase(Locale.ROOT).contains("NAME")) { + val path = subdatasetsMap(key) + val pieces = path.split(":") + Seq( + key -> pieces.last, + s"${pieces.last}_tmp" -> path, + pieces.last -> s"${pieces.head}:$sanitizedParentPath:${pieces.last}" + ) + } else Seq(key -> subdatasetsMap(key)) + ).toMap } + ///////////////////////////////////////// + // Band Functions + ///////////////////////////////////////// + /** - * @return - * True if the raster is empty, false otherwise. May be expensive to - * compute since it requires reading the raster and computing statistics. - */ - def isEmpty: Boolean = { - val bands = getBands - if (bands.isEmpty) { - subdatasets.values - .filter(_.toLowerCase(Locale.ROOT).startsWith(getDriversShortName.toLowerCase(Locale.ROOT))) - .flatMap(bp => readRaster(createInfo + ("path" -> bp)).getBands) - .takeWhile(_.isEmpty) - .nonEmpty + * @param bandId + * The band index to read. + * @return + * Returns the raster's band as a [[MosaicRasterBandGDAL]] object. + */ + def getBand(bandId: Int): MosaicRasterBandGDAL = { + if (bandId > 0 && numBands >= bandId) { + MosaicRasterBandGDAL(raster.GetRasterBand(bandId), bandId) } else { - bands.takeWhile(_.isEmpty).nonEmpty + throw new ArrayIndexOutOfBoundsException() } } - /** - * @return - * Returns the raster's path. - */ - def getPath: String = path + /** @return Returns a map of the raster band(s) statistics. */ + def getBandStats: Map[Int, Map[String, Double]] = { + (1 to numBands) + .map(i => { + val band = raster.GetRasterBand(i) + val min = Array.ofDim[Double](1) + val max = Array.ofDim[Double](1) + val mean = Array.ofDim[Double](1) + val stddev = Array.ofDim[Double](1) + band.GetStatistics(true, true, min, max, mean, stddev) + i -> Map( + "min" -> min(0), + "max" -> max(0), + "mean" -> mean(0), + "stddev" -> stddev(0) + ) + }) + .toMap + } - /** - * @return - * Returns the raster for a given cell ID. Used for tessellation. - */ - def getRasterForCell(cellID: Long, indexSystem: IndexSystem, geometryAPI: GeometryAPI): MosaicRasterGDAL = { - val cellGeom = indexSystem.indexToGeometry(cellID, geometryAPI) - val geomCRS = indexSystem.osrSpatialRef - RasterClipByVector.clip(this, cellGeom, geomCRS, geometryAPI) + /** @return Returns a map of raster band(s) valid pixel count. */ + def getValidCount: Map[Int, Long] = { + (1 to numBands) + .map(i => { + val band = raster.GetRasterBand(i) + val validCount = band.AsMDArray().GetStatistics().getValid_count + i -> validCount + }) + .toMap } + ///////////////////////////////////////// + // Raster Lifecycle Functions + ///////////////////////////////////////// + /** - * Cleans up the raster driver and references. - * - * Unlinks the raster file. After this operation the raster object is no - * longer usable. To be used as last step in expression after writing to - * bytes. - */ + * Cleans up the raster driver and references. + * - This will not clean up a file stored in a Databricks location, + * meaning DBFS, Volumes, or Workspace paths are skipped. + * Unlinks the raster file. After this operation the raster object is no + * longer usable. To be used as last step in expression after writing to + * bytes. + */ def cleanUp(): Unit = { - val isSubdataset = PathUtils.isSubdataset(path) - val filePath = if (isSubdataset) PathUtils.fromSubdatasetPath(path) else path - val pamFilePath = s"$filePath.aux.xml" - val cleanPath = filePath.replace("/vsizip/", "") - val zipPath = if (cleanPath.endsWith("zip")) cleanPath else s"$cleanPath.zip" - if (path != PathUtils.getCleanPath(parentPath)) { + // 0.4.2 - don't delete any fuse locations. + if (!PathUtils.isFuseLocation(path) && path != PathUtils.getCleanPath(parentPath)) { Try(gdal.GetDriverByName(getDriversShortName).Delete(path)) - Try(Files.deleteIfExists(Paths.get(cleanPath))) - Try(Files.deleteIfExists(Paths.get(path))) - Try(Files.deleteIfExists(Paths.get(filePath))) - Try(Files.deleteIfExists(Paths.get(pamFilePath))) - if (Files.exists(Paths.get(zipPath))) { - Try(Files.deleteIfExists(Paths.get(zipPath.replace(".zip", "")))) - } - Try(Files.deleteIfExists(Paths.get(zipPath))) + PathUtils.cleanUpPath(path) } } /** - * @note - * If memory size is -1 this will destroy the raster and you will need to - * refresh it to use it again. - * @return - * Returns the amount of memory occupied by the file in bytes. + * Destroys the raster object. After this operation the raster object is no + * longer usable. If the raster is needed again, use the refresh method. */ - def getMemSize: Long = { - if (memSize == -1) { - val toRead = if (path.startsWith("/vsizip/")) path.replace("/vsizip/", "") else path - if (Files.notExists(Paths.get(toRead))) { - throw new Exception(s"File not found: ${gdal.GetLastErrorMsg()}") - } - Files.size(Paths.get(toRead)) - } else { - memSize + def destroy(): Unit = { + val raster = getRaster + if (raster != null) { + raster.FlushCache() + raster.delete() } - } /** - * Writes a raster to a file system path. This method disposes of the - * raster object. If the raster is needed again, load it from the path. - * - * @param path - * The path to the raster file. + * Flushes the cache of the raster. This is needed to ensure that the + * raster is written to disk. This is needed for operations like + * RasterProject. * @return - * A boolean indicating if the write was successful. + * Returns the [[MosaicRasterGDAL]] object. */ - def writeToPath(path: String, dispose: Boolean = true): String = { - if (isSubDataset) { - val driver = raster.GetDriver() - val ds = driver.CreateCopy(path, this.flushCache().getRaster, 1) - if (ds == null) { - val error = gdal.GetLastErrorMsg() - throw new Exception(s"Error writing raster to path: $error") - } - ds.FlushCache() - ds.delete() - if (dispose) RasterCleaner.dispose(this) - path - } else { - val thisPath = Paths.get(this.path) - val fromDir = thisPath.getParent - val toDir = Paths.get(path).getParent - val stemRegex = PathUtils.getStemRegex(this.path) - PathUtils.wildcardCopy(fromDir.toString, toDir.toString, stemRegex) - if (dispose) RasterCleaner.dispose(this) - s"$toDir/${thisPath.getFileName}" - } + def flushCache(): MosaicRasterGDAL = { + // Note: Do not wrap GDAL objects into Option + if (getRaster != null) getRaster.FlushCache() + this.destroy() + this.refresh() } /** - * Writes a raster to a byte array. - * - * @return - * A byte array containing the raster data. + * Refreshes the raster object. This is needed after writing to a file + * system path. GDAL only properly writes to a file system path if the + * raster object is destroyed. After refresh operation the raster object is + * usable again. + * Returns [[MosaicRasterGDAL]]. */ + def refresh(): MosaicRasterGDAL = { + MosaicRasterGDAL(pathAsDataset(path), createInfo, memSize) + } + + /** + * Writes a raster to a byte array. + * @param dispose + * Whether to dispose of the raster object, default is true. + * @return + * A byte array containing the raster data. + */ def writeToBytes(dispose: Boolean = true): Array[Byte] = { - val isSubdataset = PathUtils.isSubdataset(path) val readPath = { val tmpPath = - if (isSubdataset) { + if (isSubDataset) { val tmpPath = PathUtils.createTmpFilePath(getRasterFileExtension) writeToPath(tmpPath, dispose = false) tmpPath } else { - path + this.path } if (Files.isDirectory(Paths.get(tmpPath))) { val parentDir = Paths.get(tmpPath).getParent.toString @@ -496,187 +609,73 @@ case class MosaicRasterGDAL( } /** - * Destroys the raster object. After this operation the raster object is no - * longer usable. If the raster is needed again, use the refresh method. - */ - def destroy(): Unit = { - val raster = getRaster - if (raster != null) { - raster.FlushCache() - raster.delete() - } - } - - /** - * Refreshes the raster object. This is needed after writing to a file - * system path. GDAL only properly writes to a file system path if the - * raster object is destroyed. After refresh operation the raster object is - * usable again. - */ - def refresh(): MosaicRasterGDAL = { - MosaicRasterGDAL(openRaster(path), createInfo, memSize) - } - - /** - * @return - * Returns the raster's size. - */ - def getDimensions: (Int, Int) = (xSize, ySize) - - /** - * @return - * Returns the raster's band statistics. - */ - def getBandStats: Map[Int, Map[String, Double]] = { - (1 to numBands) - .map(i => { - val band = raster.GetRasterBand(i) - val min = Array.ofDim[Double](1) - val max = Array.ofDim[Double](1) - val mean = Array.ofDim[Double](1) - val stddev = Array.ofDim[Double](1) - band.GetStatistics(true, true, min, max, mean, stddev) - i -> Map( - "min" -> min(0), - "max" -> max(0), - "mean" -> mean(0), - "stddev" -> stddev(0) - ) - }) - .toMap - } - - /** - * @return - * Returns the raster's band valid pixel count. - */ - def getValidCount: Map[Int, Long] = { - (1 to numBands) - .map(i => { - val band = raster.GetRasterBand(i) - val validCount = band.AsMDArray().GetStatistics().getValid_count - i -> validCount - }) - .toMap - } - - /** - * @param subsetName - * The name of the subdataset to get. - * @return - * Returns the raster's subdataset with given name. - */ - def getSubdataset(subsetName: String): MosaicRasterGDAL = { - val path = subdatasets.get(s"${subsetName}_tmp") - val gdalError = gdal.GetLastErrorMsg() - val error = path match { - case Some(_) => "" - case None => s""" - |Subdataset $subsetName not found! - |Available subdatasets: - | ${subdatasets.keys.filterNot(_.startsWith("SUBDATASET_")).mkString(", ")} - | """.stripMargin + * Writes a raster to a file system path. This method disposes of the + * raster object. If the raster is needed again, load it from the path. + * @param newPath + * The path to the raster file. + * @param dispose + * Whether to dispose of the raster object, default is true. + * @return + * The path where written. + */ + def writeToPath(newPath: String, dispose: Boolean = true): String = { + if (isSubDataset) { + val driver = raster.GetDriver() + val ds = driver.CreateCopy(newPath, this.flushCache().getRaster, 1) + if (ds == null) { + val error = gdal.GetLastErrorMsg() + throw new Exception(s"Error writing raster to path: $error") + } + ds.FlushCache() + ds.delete() + if (dispose) RasterCleaner.dispose(this) + newPath + } else { + val thisPath = Paths.get(this.path) + val fromDir = thisPath.getParent + val toDir = Paths.get(newPath).getParent + val stemRegex = PathUtils.getStemRegex(this.path) + PathUtils.wildcardCopy(fromDir.toString, toDir.toString, stemRegex) + if (dispose) RasterCleaner.dispose(this) + s"$toDir/${thisPath.getFileName}" } - val sanitized = PathUtils.getCleanPath(path.getOrElse(PathUtils.NO_PATH_STRING)) - val subdatasetPath = PathUtils.getSubdatasetPath(sanitized) - - val ds = openRaster(subdatasetPath) - // Avoid costly IO to compute MEM size here - // It will be available when the raster is serialized for next operation - // If value is needed then it will be computed when getMemSize is called - val createInfo = Map( - "path" -> path.getOrElse(PathUtils.NO_PATH_STRING), - "parentPath" -> parentPath, - "driver" -> getDriversShortName, - "last_error" -> { - if (gdalError.nonEmpty || error.nonEmpty) s""" - |GDAL Error: $gdalError - |$error - |""".stripMargin - else "" - } - ) - MosaicRasterGDAL(ds, createInfo, -1) } - def convolve(kernel: Array[Array[Double]]): MosaicRasterGDAL = { - val resultRasterPath = PathUtils.createTmpFilePath(getRasterFileExtension) + /////////////////////////////////////////////////// + // Additional Getters + /////////////////////////////////////////////////// - this.raster - .GetDriver() - .CreateCopy(resultRasterPath, this.raster, 1) - .delete() + /** @return Returns the raster's bands as a Seq. */ + def getBands: Seq[MosaicRasterBandGDAL] = (1 to numBands).map(getBand) - val outputRaster = gdal.Open(resultRasterPath, GF_Write) - - for (bandIndex <- 1 to this.numBands) { - val band = this.getBand(bandIndex) - val outputBand = outputRaster.GetRasterBand(bandIndex) - band.convolve(kernel, outputBand) - } + /** @return Returns a tuple with the raster's size. */ + def getDimensions: (Int, Int) = (xSize, ySize) - val createInfo = Map( - "path" -> resultRasterPath, - "parentPath" -> parentPath, - "driver" -> getDriversShortName + /** @return The raster's driver short name. */ + def getDriversShortName: String = + driverShortName.getOrElse( + Try(raster.GetDriver().getShortName).getOrElse("NONE") ) - val result = MosaicRasterGDAL(outputRaster, createInfo, this.memSize) - result.flushCache() - } - - def filter(kernelSize: Int, operation: String): MosaicRasterGDAL = { - val resultRasterPath = PathUtils.createTmpFilePath(getRasterFileExtension) - - this.raster - .GetDriver() - .CreateCopy(resultRasterPath, this.raster, 1) - .delete() - - val outputRaster = gdal.Open(resultRasterPath, GF_Write) + /** @return The raster's path on disk. Usually this is a parent file for the tile. */ + def getParentPath: String = parentPath - for (bandIndex <- 1 to this.numBands) { - val band = this.getBand(bandIndex) - val outputBand = outputRaster.GetRasterBand(bandIndex) - band.filter(kernelSize, operation, outputBand) - } + /** @return Returns the raster's path. */ + def getPath: String = path - val createInfo = Map( - "path" -> resultRasterPath, - "parentPath" -> parentPath, - "driver" -> getDriversShortName - ) + /** @return Underlying GDAL raster object. */ + def getRaster: Dataset = this.raster - val result = MosaicRasterGDAL(outputRaster, createInfo, this.memSize) - result.flushCache() - } + /** @return Returns file extension. */ + def getRasterFileExtension: String = GDAL.getExtension(getDriversShortName) } + //noinspection ZeroIndexToHead /** Companion object for MosaicRasterGDAL Implements RasterReader APIs */ object MosaicRasterGDAL extends RasterReader { - /** - * Opens a raster from a file system path with a given driver. - * @param driverShortName - * The driver short name to use. If None, then GDAL will try to identify - * the driver from the file extension - * @param path - * The path to the raster file. - * @return - * A MosaicRaster object. - */ - def openRaster(path: String, driverShortName: Option[String]): Dataset = { - driverShortName match { - case Some(driverShortName) => - val drivers = new JVector[String]() - drivers.add(driverShortName) - gdal.OpenEx(path, GA_ReadOnly, drivers) - case None => gdal.Open(path, GA_ReadOnly) - } - } - /** * Identifies the driver of a raster from a file system path. * @param parentPath @@ -696,63 +695,54 @@ object MosaicRasterGDAL extends RasterReader { } /** - * Reads a raster from a file system path. Reads a subdataset if the path - * is to a subdataset. - * - * @example - * Raster: path = "file:///path/to/file.tif" Subdataset: path = - * "file:///path/to/file.tif:subdataset" - * @param createInfo - * The create info for the raster. This should contain the following - * keys: - * - path: The path to the raster file. - * - parentPath: The path of the parent raster file. - * @return - * A MosaicRaster object. - */ - override def readRaster(createInfo: Map[String, String]): MosaicRasterGDAL = { - val inPath = createInfo("path") - val isSubdataset = PathUtils.isSubdataset(inPath) - val path = PathUtils.getCleanPath(inPath) - val readPath = - if (isSubdataset) PathUtils.getSubdatasetPath(path) - else PathUtils.getZipPath(path) - val dataset = openRaster(readPath, None) - val error = - if (dataset == null) { - val error = gdal.GetLastErrorMsg() - s""" - Error reading raster from path: $readPath - Error: $error - """ - } else "" - val driverShortName = Try(dataset.GetDriver().getShortName).getOrElse("NONE") - // Avoid costly IO to compute MEM size here - // It will be available when the raster is serialized for next operation - // If value is needed then it will be computed when getMemSize is called - // We cannot just use memSize value of the parent due to the fact that the raster could be a subdataset - val raster = MosaicRasterGDAL( - dataset, - createInfo ++ - Map( - "driver" -> driverShortName, - "last_error" -> error - ), - -1 - ) - raster + * Opens a raster from a file system path with a given driver. + * @param path + * The path to the raster file. + * @param driverShortName + * The driver short name to use. If None, then GDAL will try to identify + * the driver from the file extension + * @return + * A GDAL [[Dataset]] object. + */ + def pathAsDataset(path: String, driverShortName: Option[String]): Dataset = { + driverShortName match { + case Some(driverShortName) => + val drivers = new JVector[String]() + drivers.add(driverShortName) + gdal.OpenEx(path, GA_ReadOnly, drivers) + case None => gdal.Open(path, GA_ReadOnly) + } } /** - * Reads a raster from a byte array. + * Reads a raster band from a file system path. Reads a subdataset band if + * the path is to a subdataset. + * @example + * Raster: path = "/path/to/file.tif" Subdataset: path = + * "FORMAT:/path/to/file.tif:subdataset" + * @param bandIndex + * The band index to read (1+ indexed). + * @param createInfo + * Map of create info for the raster. + * @return + * A [[MosaicRasterGDAL]] object. + */ + override def readBand(bandIndex: Int, createInfo: Map[String, String]): MosaicRasterBandGDAL = { + val raster = readRaster(createInfo) + // Note: Raster and Band are coupled, this can cause a pointer leak + raster.getBand(bandIndex) + } + + /** + * Reads a raster from a byte array. Expects "driver" in createInfo. * @param contentBytes * The byte array containing the raster data. * @param createInfo * Mosaic creation info of the raster. Note: This is not the same as the * metadata of the raster. This is not the same as GDAL creation options. * @return - * A MosaicRaster object. - */ + * A [[MosaicRasterGDAL]] object. + */ override def readRaster(contentBytes: Array[Byte], createInfo: Map[String, String]): MosaicRasterGDAL = { if (Option(contentBytes).isEmpty || contentBytes.isEmpty) { MosaicRasterGDAL(null, createInfo, -1) @@ -764,12 +754,12 @@ object MosaicRasterGDAL extends RasterReader { val tmpPath = PathUtils.createTmpFilePath(extension) Files.write(Paths.get(tmpPath), contentBytes) // Try reading as a tmp file, if that fails, rename as a zipped file - val dataset = openRaster(tmpPath, Some(driverShortName)) + val dataset = pathAsDataset(tmpPath, Some(driverShortName)) if (dataset == null) { val zippedPath = s"$tmpPath.zip" Files.move(Paths.get(tmpPath), Paths.get(zippedPath), StandardCopyOption.REPLACE_EXISTING) val readPath = PathUtils.getZipPath(zippedPath) - val ds = openRaster(readPath, Some(driverShortName)) + val ds = pathAsDataset(readPath, Some(driverShortName)) if (ds == null) { // the way we zip using uuid is not compatible with GDAL // we need to unzip and read the file if it was zipped by us @@ -781,7 +771,7 @@ object MosaicRasterGDAL extends RasterReader { val extension = GDAL.getExtension(driverShortName) val lastExtracted = SysUtils.getLastOutputLine(prompt) val unzippedPath = PathUtils.parseUnzippedPathFromExtracted(lastExtracted, extension) - val dataset = openRaster(unzippedPath, Some(driverShortName)) + val dataset = pathAsDataset(unzippedPath, Some(driverShortName)) if (dataset == null) { throw new Exception(s"Error reading raster from bytes: ${prompt._3}") } @@ -796,27 +786,47 @@ object MosaicRasterGDAL extends RasterReader { } /** - * Reads a raster band from a file system path. Reads a subdataset band if - * the path is to a subdataset. - * - * @example - * Raster: path = "file:///path/to/file.tif" Subdataset: path = - * "file:///path/to/file.tif:subdataset" - * @param createInfo - * The create info for the raster. This should contain the following - * keys: - * - path: The path to the raster file. - * - parentPath: The path of the parent raster file. - * - driver: Optional: The driver short name of the raster file - * @param bandIndex - * The band index to read. - * @return - * A MosaicRaster object. - */ - override def readBand(bandIndex: Int, createInfo: Map[String, String]): MosaicRasterBandGDAL = { - val raster = readRaster(createInfo) - // TODO: Raster and Band are coupled, this can cause a pointer leak - raster.getBand(bandIndex) + * Reads a raster from a file system path. Reads a subdataset if the path + * is to a subdataset. + * @example + * Raster: path = "/path/to/file.tif" Subdataset: path = + * "FORMAT:/path/to/file.tif:subdataset" + * @param createInfo + * Map of create info for the raster. + * @return + * A [[MosaicRasterGDAL]] object. + */ + override def readRaster(createInfo: Map[String, String]): MosaicRasterGDAL = { + val inPath = createInfo("path") + val isSubdataset = PathUtils.isSubdataset(inPath) + val cleanPath = PathUtils.getCleanPath(inPath) + val readPath = + if (isSubdataset) PathUtils.getSubdatasetPath(cleanPath) + else PathUtils.getZipPath(cleanPath) + val dataset = pathAsDataset(readPath, None) + val error = + if (dataset == null) { + val error = gdal.GetLastErrorMsg() + s""" + Error reading raster from path: $readPath + Error: $error + """ + } else "" + val driverShortName = Try(dataset.GetDriver().getShortName).getOrElse("NONE") + // Avoid costly IO to compute MEM size here + // It will be available when the raster is serialized for next operation + // If value is needed then it will be computed when getMemSize is called + // We cannot just use memSize value of the parent due to the fact that the raster could be a subdataset + val raster = MosaicRasterGDAL( + dataset, + createInfo ++ + Map( + "driver" -> driverShortName, + "last_error" -> error + ), + -1 + ) + raster } } diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterReader.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterReader.scala index d8a1a90c1..07add8e0e 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterReader.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterReader.scala @@ -4,9 +4,10 @@ import com.databricks.labs.mosaic.core.raster.gdal.{MosaicRasterBandGDAL, Mosaic import org.apache.spark.internal.Logging /** - * RasterReader is a trait that defines the interface for reading raster data - * from a file system path. It is used by the RasterAPI to read raster and - * raster band data. + * RasterReader is a trait that defines the interface for loading raster data into + * tile struct from a file system path or contents. It is used by the RasterAPI to + * read raster and raster band data. MosaicRasterGDAL is the internal object generated + * from the data. * @note * For subdatasets the path should be the path to the subdataset and not to * the file. @@ -14,55 +15,45 @@ import org.apache.spark.internal.Logging trait RasterReader extends Logging { /** - * Reads a raster from a file system path. Reads a subdataset if the path - * is to a subdataset. - * - * @example - * Raster: path = "/path/to/file.tif" Subdataset: path = - * "FORMAT:/path/to/file.tif:subdataset" - * @param createInfo - * The create info for the raster. This should contain the following - * keys: - * - path: The path to the raster file. - * - parentPath: The path of the parent raster file. - * - driver: Optional: The driver short name of the raster file - * @return - * A MosaicRaster object. - */ - def readRaster(createInfo: Map[String, String]): MosaicRasterGDAL + * Reads a raster band from a file system path. Reads a subdataset band if + * the path is to a subdataset. Assumes "path" is a key in createInfo. + * + * @example + * Raster: path = "/path/to/file.tif" Subdataset: path = + * "FORMAT:/path/to/file.tif:subdataset" + * @param bandIndex + * The band index to read (1+ indexed). + * @param createInfo + * Map of create info for the raster. + * @return + * A [[MosaicRasterBandGDAL]] object. + */ + def readBand(bandIndex: Int, createInfo: Map[String, String]): MosaicRasterBandGDAL /** - * Reads a raster from an in memory buffer. Use the buffer bytes to produce - * a uuid of the raster. - * - * @param contentBytes - * The file bytes. - * @param createInfo - * The create info for the raster. This should contain the following - * keys: - * - parentPath: The path of the parent raster file. - * - driver: The driver short name of the raster file - * @return - * A MosaicRaster object. - */ + * Reads a raster from a byte array. Expects "driver" in createInfo. + * @param contentBytes + * The byte array containing the raster data. + * @param createInfo + * Mosaic creation info of the raster. Note: This is not the same as the + * metadata of the raster. This is not the same as GDAL creation options. + * @return + * A [[MosaicRasterGDAL]] object. + */ def readRaster(contentBytes: Array[Byte], createInfo: Map[String, String]): MosaicRasterGDAL /** - * Reads a raster band from a file system path. Reads a subdataset band if - * the path is to a subdataset. + * Reads a raster from a file system path. Reads a subdataset if the path + * is to a subdataset. Assumes "path" is a key in createInfo. * * @example * Raster: path = "/path/to/file.tif" Subdataset: path = * "FORMAT:/path/to/file.tif:subdataset" * @param createInfo - * The create info for the raster. This should contain the following - * keys: - * - path: The path to the raster file. - * - parentPath: The path of the parent raster file. - * - driver: Optional: The driver short name of the raster file + * Map of create info for the raster. * @return - * A MosaicRaster object. + * A [[MosaicRasterGDAL]] object. */ - def readBand(bandIndex: Int, createInfo: Map[String, String]): MosaicRasterBandGDAL + def readRaster(createInfo: Map[String, String]): MosaicRasterGDAL } diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterWriter.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterWriter.scala index fa6848d65..2f80b97c7 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterWriter.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/io/RasterWriter.scala @@ -2,31 +2,32 @@ package com.databricks.labs.mosaic.core.raster.io /** * RasterWriter is a trait that defines the interface for writing raster data - * to a file system path or as bytes. It is used by the RasterAPI to write - * rasters. + * to a file system path or as bytes. It is used by the [[com.databricks.labs.mosaic.core.raster.api.GDAL]] + * Raster API to write rasters from the internal [[com.databricks.labs.mosaic.core.raster.gdal.MosaicRasterGDAL]] + * object. */ trait RasterWriter { /** - * Writes a raster to a file system path. - * - * @param path - * The path to the raster file. - * @param destroy - * A boolean indicating if the raster should be destroyed after writing. - * @return - * A boolean indicating if the write was successful. - */ - def writeToPath(path: String, destroy: Boolean = true): String + * Writes a raster to a byte array. + * + * @param destroy + * A boolean indicating if the raster should be destroyed after writing. + * @return + * A byte array containing the raster data. + */ + def writeToBytes(destroy: Boolean = true): Array[Byte] /** - * Writes a raster to a byte array. + * Writes a raster to a specified file system path. * + * @param newPath + * The path to write the raster. * @param destroy * A boolean indicating if the raster should be destroyed after writing. * @return - * A byte array containing the raster data. + * The path where written (may differ, e.g. due to subdatasets). */ - def writeToBytes(destroy: Boolean = true): Array[Byte] + def writeToPath(newPath: String, destroy: Boolean = true): String } diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 97122a7d7..6f5811276 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -4,6 +4,7 @@ import com.databricks.labs.mosaic.core.index.IndexSystem import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.gdal.MosaicRasterGDAL import com.databricks.labs.mosaic.expressions.raster.{buildMapString, extractMap} +import com.databricks.labs.mosaic.gdal.MosaicGDAL import org.apache.spark.sql.catalyst.InternalRow import org.apache.spark.sql.types.{BinaryType, DataType, LongType, StringType} import org.apache.spark.unsafe.types.UTF8String @@ -23,16 +24,16 @@ case class MosaicRasterTile( raster: MosaicRasterGDAL ) { - def parentPath: String = raster.createInfo("parentPath") - - def driver: String = raster.createInfo("driver") - def getIndex: Either[Long, String] = index def getParentPath: String = parentPath + def parentPath: String = raster.createInfo("parentPath") + def getDriver: String = driver + def driver: String = raster.createInfo("driver") + def getRaster: MosaicRasterGDAL = raster /** @@ -49,7 +50,7 @@ case class MosaicRasterTile( * @param indexSystem * Index system to use for formatting. * @return - * MosaicChip with formatted index ID. + * [[MosaicRasterTile]] with formatted index ID. */ def formatCellId(indexSystem: IndexSystem): MosaicRasterTile = { if (Option(index).isEmpty) return this @@ -68,7 +69,7 @@ case class MosaicRasterTile( * @param indexSystem * Index system to use for formatting. * @return - * MosaicChip with formatted index ID. + * number variation of index id. */ def cellIdAsLong(indexSystem: IndexSystem): Long = index match { @@ -82,7 +83,7 @@ case class MosaicRasterTile( * @param indexSystem * Index system to use for formatting. * @return - * MosaicChip with formatted index ID. + * string variation of index id. */ def cellIdAsStr(indexSystem: IndexSystem): String = index match { @@ -91,16 +92,28 @@ case class MosaicRasterTile( } /** - * Serialise to spark internal representation. - * + * Serialize to spark internal representation. + * - enforces spark config to turn checkpointing on for all functions in 0.4.2 + * - more at [[com.databricks.labs.mosaic.gdal.MosaicGDAL]]. + * @param rasterDataType + * How to encode the raster. + * - Options are [[StringType]] or [[BinaryType]] + * - If checkpointing is used, [[StringType]] will be forced * @return * An instance of [[InternalRow]]. */ def serialize( rasterDataType: DataType ): InternalRow = { - val encodedRaster = encodeRaster(rasterDataType) - val path = if (rasterDataType == StringType) encodedRaster.toString else raster.createInfo("path") + + // 0.4.2 - override rasterDataType if checkpoint + var rasterDT = rasterDataType + if (MosaicGDAL.isUseCheckpoint() && rasterDataType != StringType) { + rasterDT = StringType + } + val encodedRaster = encodeRaster(rasterDT) + + val path = if (rasterDT == StringType) encodedRaster.toString else raster.createInfo("path") val parentPath = if (raster.createInfo("parentPath").isEmpty) raster.createInfo("path") else raster.createInfo("parentPath") val newCreateInfo = raster.createInfo + ("path" -> path, "parentPath" -> parentPath) val mapData = buildMapString(newCreateInfo) @@ -120,10 +133,12 @@ case class MosaicRasterTile( } /** - * Encodes the chip geometry as WKB. - * + * Encodes the raster according to the [[DataType]]. + * @param rasterDataType + * Specify [[BinaryType]] for byte array or [[StringType]] for path, + * as used in checkpointing. * @return - * An instance of [[Array]] of [[Byte]] representing WKB. + * According to the [[DataType]]. */ private def encodeRaster( rasterDataType: DataType = BinaryType @@ -144,7 +159,7 @@ object MosaicRasterTile { /** * Smart constructor based on Spark internal instance. - * + * - Can handle based on provided raster type. * @param row * An instance of [[InternalRow]]. * @param idDataType diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala index 1021eb083..22a01981b 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala @@ -82,15 +82,15 @@ case class RST_FromContent( // target size is > 0 and raster size > target size // - write the initial raster to file (unsplit) // - createDirectories in case of context isolation - val rasterPath = PathUtils.createTmpFilePath(ext) - Files.createDirectories(Paths.get(rasterPath).getParent) - Files.write(Paths.get(rasterPath), rasterArr) + val tmpPath = PathUtils.createTmpFilePath(ext) + Files.createDirectories(Paths.get(tmpPath).getParent) + Files.write(Paths.get(tmpPath), rasterArr) // split to tiles up to specifed threshold - var tiles = ReTileOnRead.localSubdivide(rasterPath, PathUtils.NO_PATH_STRING, targetSize) + var tiles = ReTileOnRead.localSubdivide(tmpPath, PathUtils.NO_PATH_STRING, targetSize) val rows = tiles.map(_.formatCellId(indexSystem).serialize(tileType)) tiles.foreach(RasterCleaner.dispose(_)) - Files.deleteIfExists(Paths.get(rasterPath)) + Files.deleteIfExists(Paths.get(tmpPath)) rasterArr = null tiles = null rows.map(row => InternalRow.fromSeq(Seq(row))) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala index f9cf7099d..c3ee47f21 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala @@ -24,7 +24,12 @@ import scala.util.Try /** * Creates raster tiles from the input column. - * + * - spark config to turn checkpointing on for all functions in 0.4.2 + * - this is the only function able to write raster to + * checkpoint (even if the spark config is set to false). + * - can be useful when you want to start from the configured checkpoint + * but work with binary payloads from there. + * - more at [[com.databricks.labs.mosaic.gdal.MosaicGDAL]]. * @param inputExpr * The expression for the raster. If the raster is stored on disc, the path * to the raster is provided. If the raster is stored in memory, the bytes of @@ -138,20 +143,20 @@ case class RST_MakeTiles( // target size is > 0 and raster size > target size // - write the initial raster to file (unsplit) // - createDirectories in case of context isolation - val rasterPath = + val readPath = if (inputExpr.dataType == StringType) { PathUtils.copyToTmpWithRetry(path, 5) } else { - val rasterPath = PathUtils.createTmpFilePath(GDAL.getExtension(driver)) - Files.createDirectories(Paths.get(rasterPath).getParent) - Files.write(Paths.get(rasterPath), rawInput.asInstanceOf[Array[Byte]]) - rasterPath + val tmpPath = PathUtils.createTmpFilePath(GDAL.getExtension(driver)) + Files.createDirectories(Paths.get(tmpPath).getParent) + Files.write(Paths.get(tmpPath), rawInput.asInstanceOf[Array[Byte]]) + tmpPath } val size = if (targetSize <= 0) 64 else targetSize - var tiles = ReTileOnRead.localSubdivide(rasterPath, PathUtils.NO_PATH_STRING, size) + var tiles = ReTileOnRead.localSubdivide(readPath, PathUtils.NO_PATH_STRING, size) val rows = tiles.map(_.formatCellId(indexSystem).serialize(tileType)) tiles.foreach(RasterCleaner.dispose(_)) - Files.deleteIfExists(Paths.get(rasterPath)) + Files.deleteIfExists(Paths.get(readPath)) tiles = null rows.map(row => InternalRow.fromSeq(Seq(row))) } diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala index 00028dbb0..8a1075a76 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala @@ -1043,7 +1043,7 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends object MosaicContext extends Logging { var _tmpDir: String = "" - val mosaicVersion: String = "0.4.1" + val mosaicVersion: String = "0.4.2" private var instance: Option[MosaicContext] = None diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala index b16b719cc..3de8f8f37 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala @@ -28,11 +28,13 @@ case class MosaicExpressionConfig(configs: Map[String, String]) { def getGeometryAPI: String = configs.getOrElse(MOSAIC_GEOMETRY_API, JTS.name) - def getIndexSystem: String = configs.getOrElse(MOSAIC_INDEX_SYSTEM, H3.name) - def getRasterCheckpoint: String = configs.getOrElse(MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_CHECKPOINT_DEFAULT) + def getRasterUseCheckpoint: String = configs.getOrElse(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT) + def getCellIdType: DataType = IndexSystemFactory.getIndexSystem(getIndexSystem).cellIdType + + def getIndexSystem: String = configs.getOrElse(MOSAIC_INDEX_SYSTEM, H3.name) def getRasterBlockSize: Int = configs.getOrElse(MOSAIC_RASTER_BLOCKSIZE, MOSAIC_RASTER_BLOCKSIZE_DEFAULT).toInt @@ -58,6 +60,10 @@ case class MosaicExpressionConfig(configs: Map[String, String]) { def setRasterCheckpoint(checkpoint: String): MosaicExpressionConfig = { MosaicExpressionConfig(configs + (MOSAIC_RASTER_CHECKPOINT -> checkpoint)) } + + def setRasterUseCheckpoint(checkpoint: String): MosaicExpressionConfig = { + MosaicExpressionConfig(configs + (MOSAIC_RASTER_USE_CHECKPOINT -> checkpoint)) + } def setTmpPrefix(prefix: String): MosaicExpressionConfig = { MosaicExpressionConfig(configs + (MOSAIC_RASTER_TMP_PREFIX -> prefix)) diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index 6cc928edd..df6de3494 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -1,13 +1,15 @@ package com.databricks.labs.mosaic.gdal -import com.databricks.labs.mosaic.MOSAIC_RASTER_BLOCKSIZE_DEFAULT +import com.databricks.labs.mosaic.{MOSAIC_RASTER_BLOCKSIZE_DEFAULT, MOSAIC_TEST_MODE} import com.databricks.labs.mosaic.functions.{MosaicContext, MosaicExpressionConfig} +import com.databricks.labs.mosaic.utils.PathUtils import org.apache.spark.internal.Logging import org.apache.spark.sql.SparkSession import org.gdal.gdal.gdal import org.gdal.osr.SpatialReference -import java.nio.file.{Files, Paths} +import java.io.{File, FileNotFoundException} +import java.nio.file.{Files, InvalidPathException, Paths} import scala.language.postfixOps import scala.util.Try @@ -31,6 +33,7 @@ object MosaicGDAL extends Logging { val GDAL_ENABLED = "spark.mosaic.gdal.native.enabled" var isEnabled = false var checkpointPath: String = _ + var useCheckpoint: Boolean = _ // Only use this with GDAL rasters val WSG84: SpatialReference = { @@ -60,6 +63,9 @@ object MosaicGDAL extends Logging { mosaicConfig.getGDALConf.foreach { case (k, v) => gdal.SetConfigOption(k.split("\\.").last, v) } setBlockSize(mosaicConfig) checkpointPath = mosaicConfig.getRasterCheckpoint + useCheckpoint = { + Try(mosaicConfig.getRasterUseCheckpoint.asInstanceOf[Boolean]).getOrElse(false) + } } def setBlockSize(mosaicConfig: MosaicExpressionConfig): Unit = { @@ -98,6 +104,50 @@ object MosaicGDAL extends Logging { } } + /** + * Enables the GDAL environment with checkpointing. + * - alternative to setting spark configs prior to init. + * - can be called multiple times in a session as you want to change + * checkpoint location. + * - sets [[MosaicExpressionConfig.setRasterCheckpoint]] to provided path. + * - sets [[MosaicExpressionConfig.setRasterUseCheckpoint]] to "true". + * @param spark + * spark session to use. + * @param withCheckpointPath + * path to set. + */ + def enableGDALWithCheckpoint(spark: SparkSession, withCheckpointPath: String): Unit = { + // do some checks + val isTestMode = spark.conf.get(MOSAIC_TEST_MODE, "false").toBoolean + if (withCheckpointPath == null) { + val msg = "Null checkpoint path provided." + logError(msg) + throw new NullPointerException(msg) + } else if (!isTestMode && !PathUtils.isFuseLocation(withCheckpointPath)) { + val msg = "Checkpoint path must be a (non-local) fuse location." + logError(msg) + throw new InvalidPathException(withCheckpointPath, msg) + } else if (!Files.exists(Paths.get(withCheckpointPath))) { + if (withCheckpointPath.startsWith("/Volumes/")) { + val msg = "Volume checkpoint path doesn't exist and must be created through Databricks catalog." + logError(msg) + throw new FileNotFoundException(msg) + } else { + val dir = new File(withCheckpointPath) + dir.mkdirs + } + } + + // enable checkpoint + checkpointPath = withCheckpointPath + useCheckpoint = true + logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides spark confs).") + + // enable gdal + enableGDAL(spark) + } + + /** Loads the shared objects required for GDAL. */ private def loadSharedObjects(): Unit = { loadOrNOOP(usrlibsoPath) @@ -122,6 +172,12 @@ object MosaicGDAL extends Logging { } } + /** @return value of useCheckpoint. */ + def isUseCheckpoint(): Boolean = this.useCheckpoint + + /** return value of checkpointPath. */ + def getCheckpointPath(): String = this.checkpointPath + // /** Reads the resource bytes. */ // private def readResourceBytes(name: String): Array[Byte] = { // val bis = new BufferedInputStream(getClass.getResourceAsStream(name)) diff --git a/src/main/scala/com/databricks/labs/mosaic/package.scala b/src/main/scala/com/databricks/labs/mosaic/package.scala index 86bdbcec7..32b8086d6 100644 --- a/src/main/scala/com/databricks/labs/mosaic/package.scala +++ b/src/main/scala/com/databricks/labs/mosaic/package.scala @@ -22,6 +22,8 @@ package object mosaic { val MOSAIC_GDAL_NATIVE = "spark.databricks.labs.mosaic.gdal.native" val MOSAIC_RASTER_CHECKPOINT = "spark.databricks.labs.mosaic.raster.checkpoint" val MOSAIC_RASTER_CHECKPOINT_DEFAULT = "/dbfs/tmp/mosaic/raster/checkpoint" + val MOSAIC_RASTER_USE_CHECKPOINT = "spark.databricks.labs.mosaic.raster.use.checkpoint" + val MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT = "false" val MOSAIC_RASTER_TMP_PREFIX = "spark.databricks.labs.mosaic.raster.tmp.prefix" val MOSAIC_RASTER_BLOCKSIZE = "spark.databricks.labs.mosaic.raster.blocksize" val MOSAIC_RASTER_BLOCKSIZE_DEFAULT = "128" @@ -32,7 +34,7 @@ package object mosaic { val MOSAIC_RASTER_RE_TILE_ON_READ = "retile_on_read" val MOSAIC_NO_DRIVER = "no_driver" - + val MOSAIC_TEST_MODE = "spark.databricks.labs.mosaic.test.mode" def read: MosaicDataFrameReader = new MosaicDataFrameReader(SparkSession.builder().getOrCreate()) diff --git a/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala b/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala index 2f896c046..088d650df 100644 --- a/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala +++ b/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala @@ -4,51 +4,90 @@ import com.databricks.labs.mosaic.functions.MosaicContext import java.nio.file.{Files, Path, Paths} import scala.jdk.CollectionConverters._ +import scala.util.Try object PathUtils { val NO_PATH_STRING = "no_path" + val FILE_TOKEN = "file:" + val VSI_ZIP_TOKEN = "/vsizip/" + val DBFS_FUSE_TOKEN = "/dbfs" + val DBFS_TOKEN = "dbfs:" + val VOLUMES_TOKEN = "/Volumes" + val WORKSPACE_TOKEN = "/Workspace" - def replaceDBFSTokens(path: String): String = { - path - .replace("file:/", "/") - .replace("dbfs:/Volumes", "/Volumes") - .replace("dbfs:/", "/dbfs/") - } + /** + * Cleans up variations of path. + * - handles subdataset path + * - handles "aux.xml" sidecar file + * - handles zips, including "/vsizip/" + * @param path + */ + def cleanUpPath(path: String): Unit = { + // 0.4.2 - new function + val isSD = isSubdataset(path) + val filePath = if (isSD) fromSubdatasetPath(path) else path + val pamFilePath = s"$filePath.aux.xml" + val cleanPath = filePath.replace(VSI_ZIP_TOKEN, "") + val zipPath = if (cleanPath.endsWith("zip")) cleanPath else s"$cleanPath.zip" - def getCleanPath(path: String): String = { - val cleanPath = replaceDBFSTokens(path) - if (cleanPath.endsWith(".zip") || cleanPath.contains(".zip:")) { - getZipPath(cleanPath) - } else { - cleanPath + Try(Files.deleteIfExists(Paths.get(cleanPath))) + Try(Files.deleteIfExists(Paths.get(path))) + Try(Files.deleteIfExists(Paths.get(filePath))) + Try(Files.deleteIfExists(Paths.get(pamFilePath))) + if (Files.exists(Paths.get(zipPath))) { + Try(Files.deleteIfExists(Paths.get(zipPath.replace(".zip", "")))) } + Try(Files.deleteIfExists(Paths.get(zipPath))) } - def isSubdataset(path: String): Boolean = { - path.split(":").length == 3 - } + /** + * Copy provided path to tmp. + * @param inPath + * Path to copy from. + * @return + * The copied path. + */ + def copyToTmp(inPath: String): String = { + val copyFromPath = replaceDBFSTokens(inPath) + val inPathDir = Paths.get(copyFromPath).getParent.toString - def getSubdatasetPath(path: String): String = { - // Subdatasets are paths with a colon in them. - // We need to check for this condition and handle it. - // Subdatasets paths are formatted as: "FORMAT:/path/to/file.tif:subdataset" - val format :: filePath :: subdataset :: Nil = path.split(":").toList - val isZip = filePath.endsWith(".zip") - val vsiPrefix = if (isZip) "/vsizip/" else "" - s"$format:$vsiPrefix$filePath:$subdataset" + val fullFileName = copyFromPath.split("/").last + val stemRegex = getStemRegex(inPath) + + wildcardCopy(inPathDir, MosaicContext.tmpDir(null), stemRegex) + + s"${MosaicContext.tmpDir(null)}/$fullFileName" } - def getZipPath(path: String): String = { - // It is really important that the resulting path is /vsizip// and not /vsizip/ - // /vsizip// is for absolute paths /viszip/ is relative to the current working directory - // /vsizip/ wont work on a cluster - // see: https://gdal.org/user/virtual_file_systems.html#vsizip-zip-archives - val isZip = path.endsWith(".zip") - val readPath = if (path.startsWith("/vsizip/")) path else if (isZip) s"/vsizip/$path" else path - readPath + /** + * Copy path to tmp with retries. + * @param inPath + * Path to copy from. + * @param retries + * How many times to retry copy, default = 3. + * @return + * The tmp path. + */ + def copyToTmpWithRetry(inPath: String, retries: Int = 3): String = { + var tmpPath = copyToTmp(inPath) + var i = 0 + while (Files.notExists(Paths.get(tmpPath)) && i < retries) { + tmpPath = copyToTmp(inPath) + i += 1 + } + tmpPath } + /** + * Create a file under tmp dir. + * - Directories are created. + * - File itself is not create. + * @param extension + * The file extension to use. + * @return + * The tmp path. + */ def createTmpFilePath(extension: String): String = { val tmpDir = MosaicContext.tmpDir(null) val uuid = java.util.UUID.randomUUID.toString @@ -57,6 +96,16 @@ object PathUtils { outPath } + /** + * File path which had a subdataset. + * - split on ":" and return just the path, + * not the subdataset. + * - remove any quotes at start and end. + * @param path + * Provided path. + * @return + * The path without subdataset. + */ def fromSubdatasetPath(path: String): String = { val _ :: filePath :: _ :: Nil = path.split(":").toList var result = filePath @@ -65,6 +114,15 @@ object PathUtils { result } + /** + * Generate regex string of path filename. + * - handles fuse paths. + * - handles "." in the filename "stem". + * @param path + * Provided path. + * @return + * Regex string. + */ def getStemRegex(path: String): String = { val cleanPath = replaceDBFSTokens(path) val fileName = Paths.get(cleanPath).getFileName.toString @@ -73,29 +131,139 @@ object PathUtils { val stemRegex = s"$stemEscaped\\..*".r stemRegex.toString } - - def copyToTmpWithRetry(inPath: String, retries: Int = 3): String = { - var tmpPath = copyToTmp(inPath) - var i = 0 - while (Files.notExists(Paths.get(tmpPath)) && i < retries) { - tmpPath = copyToTmp(inPath) - i += 1 + + /** + * Get subdataset path. + * - these paths end with ":subdataset". + * - adds "/vsizip/" if needed. + * @param path + * Provided path. + * @return + * Standardized path. + */ + def getSubdatasetPath(path: String): String = { + // Subdatasets are paths with a colon in them. + // We need to check for this condition and handle it. + // Subdatasets paths are formatted as: "FORMAT:/path/to/file.tif:subdataset" + val format :: filePath :: subdataset :: Nil = path.split(":").toList + val isZip = filePath.endsWith(".zip") + val vsiPrefix = if (isZip) VSI_ZIP_TOKEN else "" + s"$format:$vsiPrefix$filePath:$subdataset" + } + + /** + * Clean path. + * - handles fuse paths. + * - handles zip paths + * @param path + * Provided path. + * @return + * Standardized string. + */ + def getCleanPath(path: String): String = { + val cleanPath = replaceDBFSTokens(path) + if (cleanPath.endsWith(".zip") || cleanPath.contains(".zip:")) { + getZipPath(cleanPath) + } else { + cleanPath } - tmpPath } - def copyToTmp(inPath: String): String = { - val copyFromPath = replaceDBFSTokens(inPath) - val inPathDir = Paths.get(copyFromPath).getParent.toString + /** + * Standardize zip paths. + * - Add "/vsizip/" as needed. + * @param path + * Provided path. + * @return + * Standardized path. + */ + def getZipPath(path: String): String = { + // It is really important that the resulting path is /vsizip// and not /vsizip/ + // /vsizip// is for absolute paths /viszip/ is relative to the current working directory + // /vsizip/ wont work on a cluster + // see: https://gdal.org/user/virtual_file_systems.html#vsizip-zip-archives + val isZip = path.endsWith(".zip") + val readPath = if (path.startsWith(VSI_ZIP_TOKEN)) path else if (isZip) s"$VSI_ZIP_TOKEN$path" else path + readPath + } - val fullFileName = copyFromPath.split("/").last - val stemRegex = getStemRegex(inPath) + /** + * Test for whether path is in a fuse location, + * looks ahead somewhat beyond DBFS. + * - handles DBFS, Volumes, and Workspace paths. + * @param path + * Provided path. + * @return + * True if path is in a fuse location. + */ + def isFuseLocation(path: String): Boolean = { + // 0.4.2 - new function + val p = getCleanPath(path) + val isFuse = p match { + case _ if ( + p.startsWith(s"$DBFS_FUSE_TOKEN/") || + p.startsWith(s"$VOLUMES_TOKEN/") || + p.startsWith(s"$WORKSPACE_TOKEN/")) => true + case _ => false + } + isFuse + } - wildcardCopy(inPathDir, MosaicContext.tmpDir(null), stemRegex) + /** + * Is the path a subdataset? + * - Known by ":" after the filename. + * @param path + * Provided path. + * @return + * True if is a subdataset. + */ + def isSubdataset(path: String): Boolean = { + path.split(":").length == 3 + } - s"${MosaicContext.tmpDir(null)}/$fullFileName" + /** + * Parse the unzipped path from standard out. + * - Called after a prompt is executed to unzip. + * @param lastExtracted + * Standard out line to parse. + * @param extension + * Extension of file, e.g. "shp". + * @return + * The parsed path. + */ + def parseUnzippedPathFromExtracted(lastExtracted: String, extension: String): String = { + val trimmed = lastExtracted.replace("extracting: ", "").replace(" ", "") + val indexOfFormat = trimmed.indexOf(s".$extension/") + trimmed.substring(0, indexOfFormat + extension.length + 1) + } + + /** + * Replace various file path schemas that are not needed + * for internal / local handling. + * - handles "file:". "dbfs:" + * - appropriate for "/dbfs/", "/Volumes/", and "/Workspace/" + * paths, which can be read locally. + * @param path + * Provided path. + * @return + * Replaced string. + */ + def replaceDBFSTokens(path: String): String = { + path + .replace(s"$FILE_TOKEN/", "/") + .replace(s"$DBFS_TOKEN$VOLUMES_TOKEN/", s"$VOLUMES_TOKEN/") + .replace(s"$DBFS_TOKEN/", s"$DBFS_FUSE_TOKEN/") } + /** + * Perform a wildcard copy. + * @param inDirPath + * Provided in dir. + * @param outDirPath + * Provided out dir. + * @param pattern + * Regex pattern to match. + */ def wildcardCopy(inDirPath: String, outDirPath: String, pattern: String): Unit = { import org.apache.commons.io.FileUtils val copyFromPath = replaceDBFSTokens(inDirPath) @@ -106,7 +274,7 @@ object PathUtils { .filter(_.getFileName.toString.matches(pattern)) .collect(java.util.stream.Collectors.toList[Path]) .asScala - + for (path <- toCopy) { val destination = Paths.get(copyToPath, path.getFileName.toString) // noinspection SimplifyBooleanMatch @@ -115,10 +283,4 @@ object PathUtils { } } - def parseUnzippedPathFromExtracted(lastExtracted: String, extension: String): String = { - val trimmed = lastExtracted.replace("extracting: ", "").replace(" ", "") - val indexOfFormat = trimmed.indexOf(s".$extension/") - trimmed.substring(0, indexOfFormat + extension.length + 1) - } - } diff --git a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala index 8bbe4b1f3..2982c69a9 100644 --- a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala +++ b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.core.raster +import com.databricks.labs.mosaic.{MOSAIC_RASTER_CHECKPOINT, MOSAIC_TEST_MODE} import com.databricks.labs.mosaic.core.raster.gdal.MosaicRasterGDAL import com.databricks.labs.mosaic.gdal.MosaicGDAL import com.databricks.labs.mosaic.test.mocks.filePath @@ -13,6 +14,12 @@ import scala.util.Try class TestRasterGDAL extends SharedSparkSessionGDAL { + test("Verify that checkpoint is not used.") { + spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" + MosaicGDAL.isUseCheckpoint() shouldBe false + MosaicGDAL.getCheckpointPath() shouldBe spark.conf.get(MOSAIC_RASTER_CHECKPOINT) + } + test("Verify that GDAL is enabled.") { assume(System.getProperty("os.name") == "Linux") @@ -338,4 +345,11 @@ class TestRasterGDAL extends SharedSparkSessionGDAL { } + test("Verify that checkpoint is configured.") { + MosaicGDAL.enableGDALWithCheckpoint(spark, spark.conf.get(MOSAIC_RASTER_CHECKPOINT)) + spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" + MosaicGDAL.isUseCheckpoint() shouldBe true + MosaicGDAL.getCheckpointPath() shouldBe spark.conf.get(MOSAIC_RASTER_CHECKPOINT) + } + } diff --git a/src/test/scala/com/databricks/labs/mosaic/datasource/OGRFileFormatTest.scala b/src/test/scala/com/databricks/labs/mosaic/datasource/OGRFileFormatTest.scala index f37bef949..5d96c6e4a 100644 --- a/src/test/scala/com/databricks/labs/mosaic/datasource/OGRFileFormatTest.scala +++ b/src/test/scala/com/databricks/labs/mosaic/datasource/OGRFileFormatTest.scala @@ -144,7 +144,7 @@ class OGRFileFormatTest extends QueryTest with SharedSparkSessionGDAL { test("OGRFileFormat should handle partial schema: ISSUE 351") { assume(System.getProperty("os.name") == "Linux") - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(H3, JTS) import mc.functions._ diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/format/ConvertToBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/format/ConvertToBehaviors.scala index 614d860f9..052703fca 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/format/ConvertToBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/format/ConvertToBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers._ trait ConvertToBehaviors extends QueryTest { def checkInputTypeBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -58,7 +58,7 @@ trait ConvertToBehaviors extends QueryTest { } def passthroughBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -67,7 +67,7 @@ trait ConvertToBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) val wkts = getWKTRowsDf().select("wkt") diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/FlattenPolygonsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/FlattenPolygonsBehaviors.scala index 53d4c24cd..b589d2590 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/FlattenPolygonsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/FlattenPolygonsBehaviors.scala @@ -16,7 +16,7 @@ import org.apache.spark.sql.functions.{col, lit} trait FlattenPolygonsBehaviors extends QueryTest { def flattenWKBPolygon(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -66,7 +66,7 @@ trait FlattenPolygonsBehaviors extends QueryTest { } def flattenWKTPolygon(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -116,7 +116,7 @@ trait FlattenPolygonsBehaviors extends QueryTest { } def flattenCOORDSPolygon(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -177,7 +177,7 @@ trait FlattenPolygonsBehaviors extends QueryTest { } def flattenHEXPolygon(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -238,7 +238,7 @@ trait FlattenPolygonsBehaviors extends QueryTest { } def failDataTypeCheck(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -256,7 +256,7 @@ trait FlattenPolygonsBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AreaBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AreaBehaviors.scala index 38a94ac88..0f4bd013b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AreaBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AreaBehaviors.scala @@ -14,7 +14,7 @@ import org.scalatest.matchers.should.Matchers.convertToAnyShouldWrapper trait ST_AreaBehaviors extends MosaicSpatialQueryTest { def areaBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -45,7 +45,7 @@ trait ST_AreaBehaviors extends MosaicSpatialQueryTest { } def areaCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -70,7 +70,7 @@ trait ST_AreaBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsGeoJSONTileAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsGeoJSONTileAggBehaviors.scala index a77b90df4..8cd0fac6a 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsGeoJSONTileAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsGeoJSONTileAggBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers.{be, convertToAnyShouldWrapper} trait ST_AsGeoJSONTileAggBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsMVTTileAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsMVTTileAggBehaviors.scala index 2dbb0fbcf..5047631a3 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsMVTTileAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_AsMVTTileAggBehaviors.scala @@ -14,7 +14,7 @@ import java.nio.file.{Files, Paths} trait ST_AsMVTTileAggBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferBehaviors.scala index 972a474a0..b6ebaa1d0 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferBehaviors.scala @@ -20,7 +20,7 @@ import scala.collection.JavaConverters._ trait ST_BufferBehaviors extends QueryTest { def bufferBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ val sc = spark @@ -99,7 +99,7 @@ trait ST_BufferBehaviors extends QueryTest { } def bufferCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -206,7 +206,7 @@ trait ST_BufferBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) import mc.functions._ diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferLoopBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferLoopBehaviors.scala index 90855c817..8e5a5e165 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferLoopBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_BufferLoopBehaviors.scala @@ -34,7 +34,7 @@ trait ST_BufferLoopBehaviors extends MosaicSpatialQueryTest { } def codegenCompilation(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) @@ -57,7 +57,7 @@ trait ST_BufferLoopBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_CentroidBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_CentroidBehaviors.scala index 055df10db..e6e947090 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_CentroidBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_CentroidBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_CentroidBehaviors extends MosaicSpatialQueryTest { def centroidBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -62,7 +62,7 @@ trait ST_CentroidBehaviors extends MosaicSpatialQueryTest { } def centroidCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -92,7 +92,7 @@ trait ST_CentroidBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConcaveHullBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConcaveHullBehaviors.scala index 1d75bc146..63feb8d03 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConcaveHullBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConcaveHullBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_ConcaveHullBehaviors extends QueryTest { def concaveHullBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ val sc = spark @@ -50,7 +50,7 @@ trait ST_ConcaveHullBehaviors extends QueryTest { } def concaveHullCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -81,7 +81,7 @@ trait ST_ConcaveHullBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ContainsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ContainsBehaviors.scala index 98c8999c3..33e127533 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ContainsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ContainsBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_ContainsBehaviors extends MosaicSpatialQueryTest { def containsBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -37,7 +37,7 @@ trait ST_ContainsBehaviors extends MosaicSpatialQueryTest { } def containsCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -79,7 +79,7 @@ trait ST_ContainsBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConvexHullBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConvexHullBehaviors.scala index 607e0f3e5..660e02f5e 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConvexHullBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ConvexHullBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_ConvexHullBehaviors extends QueryTest { def convexHullBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ val sc = spark @@ -37,7 +37,7 @@ trait ST_ConvexHullBehaviors extends QueryTest { } def convexHullCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -70,7 +70,7 @@ trait ST_ConvexHullBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DifferenceBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DifferenceBehaviors.scala index 1b96c90ab..e2abd573d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DifferenceBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DifferenceBehaviors.scala @@ -28,7 +28,7 @@ trait ST_DifferenceBehaviors extends MosaicSpatialQueryTest { } def codegenCompilation(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) @@ -55,7 +55,7 @@ trait ST_DifferenceBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DimensionBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DimensionBehaviors.scala index 605e305b6..2db320846 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DimensionBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DimensionBehaviors.scala @@ -14,7 +14,7 @@ import org.scalatest.matchers.should.Matchers.convertToAnyShouldWrapper trait ST_DimensionBehaviors extends MosaicSpatialQueryTest { def dimensionBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -45,7 +45,7 @@ trait ST_DimensionBehaviors extends MosaicSpatialQueryTest { } def areaCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -70,7 +70,7 @@ trait ST_DimensionBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DistanceBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DistanceBehaviors.scala index 54de04600..5615e21c4 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DistanceBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_DistanceBehaviors.scala @@ -18,7 +18,7 @@ import scala.collection.immutable trait ST_DistanceBehaviors extends QueryTest { def distanceBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ val sc = spark @@ -51,7 +51,7 @@ trait ST_DistanceBehaviors extends QueryTest { } def distanceCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -87,7 +87,7 @@ trait ST_DistanceBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_EnvelopeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_EnvelopeBehaviors.scala index fda89a75f..e659aa098 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_EnvelopeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_EnvelopeBehaviors.scala @@ -24,7 +24,7 @@ trait ST_EnvelopeBehaviors extends MosaicSpatialQueryTest { } def codegenCompilation(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) @@ -47,7 +47,7 @@ trait ST_EnvelopeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_GeometryTypeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_GeometryTypeBehaviors.scala index 6a6bbe620..abc4bfd9f 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_GeometryTypeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_GeometryTypeBehaviors.scala @@ -15,7 +15,7 @@ import java.util.Locale trait ST_GeometryTypeBehaviors extends MosaicSpatialQueryTest { def wktTypesBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -48,7 +48,7 @@ trait ST_GeometryTypeBehaviors extends MosaicSpatialQueryTest { } def wktTypesCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -79,7 +79,7 @@ trait ST_GeometryTypeBehaviors extends MosaicSpatialQueryTest { } def hexTypesBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -114,7 +114,7 @@ trait ST_GeometryTypeBehaviors extends MosaicSpatialQueryTest { } def hexTypesCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -143,7 +143,7 @@ trait ST_GeometryTypeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala index 3c7c2deb0..6b81153d0 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala @@ -19,7 +19,7 @@ trait ST_HasValidCoordinatesBehaviors extends MosaicSpatialQueryTest { // noinspection AccessorLikeMethodIsUnit def hasValidCoordinatesBehaviours(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -103,7 +103,7 @@ trait ST_HasValidCoordinatesBehaviors extends MosaicSpatialQueryTest { } def expressionCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -130,7 +130,7 @@ trait ST_HasValidCoordinatesBehaviors extends MosaicSpatialQueryTest { def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HaversineBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HaversineBehaviors.scala index f9fbd8c4b..189dbb9bd 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HaversineBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HaversineBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers.convertToAnyShouldWrapper trait ST_HaversineBehaviors extends QueryTest { def haversineBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -25,7 +25,7 @@ trait ST_HaversineBehaviors extends QueryTest { } def haversineCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -45,7 +45,7 @@ trait ST_HaversineBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectionBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectionBehaviors.scala index 7007e93dc..0a244abf1 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectionBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectionBehaviors.scala @@ -20,7 +20,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_IntersectionBehaviors extends QueryTest { def intersectionBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI, resolution: Int): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -71,7 +71,7 @@ trait ST_IntersectionBehaviors extends QueryTest { } def intersectionAggBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -166,7 +166,7 @@ trait ST_IntersectionBehaviors extends QueryTest { } def selfIntersectionBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI, resolution: Int): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -212,7 +212,7 @@ trait ST_IntersectionBehaviors extends QueryTest { } def intersectionCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -238,7 +238,7 @@ trait ST_IntersectionBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectsBehaviors.scala index a94409e34..a921969a0 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IntersectsBehaviors.scala @@ -17,7 +17,7 @@ import org.scalatest.matchers.should.Matchers.{be, convertToAnyShouldWrapper, no trait ST_IntersectsBehaviors extends QueryTest { def intersectsBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI, resolution: Int): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -83,7 +83,7 @@ trait ST_IntersectsBehaviors extends QueryTest { } def intersectsAggBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -138,7 +138,7 @@ trait ST_IntersectsBehaviors extends QueryTest { } def selfIntersectsBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI, resolution: Int): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) import mc.functions._ mc.register(spark) @@ -182,7 +182,7 @@ trait ST_IntersectsBehaviors extends QueryTest { } def intersectsCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -208,7 +208,7 @@ trait ST_IntersectsBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IsValidBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IsValidBehaviors.scala index a11710f9e..40da78805 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IsValidBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_IsValidBehaviors.scala @@ -14,7 +14,7 @@ import org.scalatest.matchers.should.Matchers.{all, an, be, convertToAnyShouldWr trait ST_IsValidBehaviors extends MosaicSpatialQueryTest { def isValidBehaviour(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark val mc = mosaicContext import mc.functions._ @@ -80,7 +80,7 @@ trait ST_IsValidBehaviors extends MosaicSpatialQueryTest { } def isValidCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -108,7 +108,7 @@ trait ST_IsValidBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_LengthBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_LengthBehaviors.scala index f24bb18b1..f673d0ba8 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_LengthBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_LengthBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_LengthBehaviors extends MosaicSpatialQueryTest { def lengthBehaviour(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark val mc = mosaicContext import mc.functions._ @@ -61,7 +61,7 @@ trait ST_LengthBehaviors extends MosaicSpatialQueryTest { } def lengthCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -91,7 +91,7 @@ trait ST_LengthBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_MinMaxXYZBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_MinMaxXYZBehaviors.scala index b6d79406c..3358fa789 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_MinMaxXYZBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_MinMaxXYZBehaviors.scala @@ -15,7 +15,7 @@ import org.scalatest.matchers.should.Matchers.convertToAnyShouldWrapper trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { def xMinBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -38,7 +38,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def xMaxBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -62,7 +62,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def yMinBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -85,7 +85,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def yMaxBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -109,7 +109,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def xMinCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -131,7 +131,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def xMaxCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -153,7 +153,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def yMinCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -175,7 +175,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def yMaxCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -197,7 +197,7 @@ trait ST_MinMaxXYZBehaviors extends MosaicSpatialQueryTest { } def auxiliary(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val df = getWKTRowsDf().orderBy("id") val expr = ST_MinMaxXYZ(df.col("wkt").expr, mc.expressionConfig, "X", "MAX") diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_NumPointsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_NumPointsBehaviors.scala index c33d4d19f..ea895b863 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_NumPointsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_NumPointsBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, contain, convertToAnyShou trait ST_NumPointsBehaviors extends MosaicSpatialQueryTest { def numPointsBehaviour(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -41,7 +41,7 @@ trait ST_NumPointsBehaviors extends MosaicSpatialQueryTest { } def codegenCompilation(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark mc.register(sc) @@ -64,7 +64,7 @@ trait ST_NumPointsBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_RotateBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_RotateBehaviors.scala index 3ff0d38b0..bba61f1a7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_RotateBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_RotateBehaviors.scala @@ -14,7 +14,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_RotateBehaviors extends QueryTest { def rotateBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -35,7 +35,7 @@ trait ST_RotateBehaviors extends QueryTest { } def rotateCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -64,7 +64,7 @@ trait ST_RotateBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SRIDBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SRIDBehaviors.scala index 142d84569..2332996b4 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SRIDBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SRIDBehaviors.scala @@ -18,7 +18,7 @@ import scala.collection.JavaConverters._ trait ST_SRIDBehaviors extends MosaicSpatialQueryTest { def SRIDBehaviour(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark val mc = mosaicContext import mc.functions._ @@ -63,7 +63,7 @@ trait ST_SRIDBehaviors extends MosaicSpatialQueryTest { } def SRIDCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark val mc = mosaicContext import mc.functions._ @@ -107,7 +107,7 @@ trait ST_SRIDBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ScaleBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ScaleBehaviors.scala index 8cd3962ba..8438789af 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ScaleBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ScaleBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_ScaleBehaviors extends QueryTest { def scaleBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -34,7 +34,7 @@ trait ST_ScaleBehaviors extends QueryTest { } def scaleCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -63,7 +63,7 @@ trait ST_ScaleBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SetSRIDBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SetSRIDBehaviors.scala index 062c5bcc9..332d25c6d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SetSRIDBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SetSRIDBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{be, convertToAnyShouldWrapper, no trait ST_SetSRIDBehaviors extends QueryTest { def setSRIDBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -63,7 +63,7 @@ trait ST_SetSRIDBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SimplifyBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SimplifyBehaviors.scala index 672ca0efa..b30dedf3f 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SimplifyBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_SimplifyBehaviors.scala @@ -15,7 +15,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_SimplifyBehaviors extends QueryTest { def simplifyBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -51,7 +51,7 @@ trait ST_SimplifyBehaviors extends QueryTest { } def simplifyCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -80,7 +80,7 @@ trait ST_SimplifyBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) import mc.functions._ diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TransformBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TransformBehaviors.scala index 6c11580ec..ee24ad485 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TransformBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TransformBehaviors.scala @@ -20,7 +20,7 @@ trait ST_TransformBehaviors extends QueryTest { val geomFactory = new GeometryFactory() def reprojectGeometries(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -116,7 +116,7 @@ trait ST_TransformBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TranslateBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TranslateBehaviors.scala index 39eb08ef6..ce3bfd282 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TranslateBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_TranslateBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_TranslateBehaviors extends QueryTest { def translateBehaviour(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -35,7 +35,7 @@ trait ST_TranslateBehaviors extends QueryTest { } def translateCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -64,7 +64,7 @@ trait ST_TranslateBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnaryUnionBehaviours.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnaryUnionBehaviours.scala index 7f4508c24..5ea6f5ecc 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnaryUnionBehaviours.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnaryUnionBehaviours.scala @@ -24,7 +24,7 @@ trait ST_UnaryUnionBehaviours extends MosaicSpatialQueryTest { } def codegenCompilation(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) @@ -47,7 +47,7 @@ trait ST_UnaryUnionBehaviours extends MosaicSpatialQueryTest { } def auxiliaryMethods(mc: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark mc.register(sc) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnionBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnionBehaviors.scala index 3c51530e9..d2c3f89d2 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnionBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UnionBehaviors.scala @@ -15,7 +15,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_UnionBehaviors extends QueryTest { def unionBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -40,7 +40,7 @@ trait ST_UnionBehaviors extends QueryTest { } def unionAggBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -78,7 +78,7 @@ trait ST_UnionBehaviors extends QueryTest { } def unionCodegen(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) val sc = spark import mc.functions._ @@ -105,7 +105,7 @@ trait ST_UnionBehaviors extends QueryTest { } def auxiliaryMethods(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UpdateSRIDBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UpdateSRIDBehaviors.scala index 7559698e8..95792e0f4 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UpdateSRIDBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_UpdateSRIDBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{be, convertToAnyShouldWrapper, no trait ST_UpdateSRIDBehaviors extends MosaicSpatialQueryTest { def updateSRIDBehaviour(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark val mc = mosaicContext import mc.functions._ @@ -63,7 +63,7 @@ trait ST_UpdateSRIDBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_WithinBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_WithinBehaviors.scala index fba4805b5..6d3c82a6d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_WithinBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_WithinBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_WithinBehaviors extends MosaicSpatialQueryTest { def withinBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -37,7 +37,7 @@ trait ST_WithinBehaviors extends MosaicSpatialQueryTest { } def withinCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -79,7 +79,7 @@ trait ST_WithinBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_XBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_XBehaviors.scala index 81d110980..be6312548 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_XBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_XBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_XBehaviors extends MosaicSpatialQueryTest { def stxBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -50,7 +50,7 @@ trait ST_XBehaviors extends MosaicSpatialQueryTest { } def stxCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -80,7 +80,7 @@ trait ST_XBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_YBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_YBehaviors.scala index 547c8a62b..c0d9de6b8 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_YBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_YBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_YBehaviors extends MosaicSpatialQueryTest { def styBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -50,7 +50,7 @@ trait ST_YBehaviors extends MosaicSpatialQueryTest { } def styCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -80,7 +80,7 @@ trait ST_YBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ZBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ZBehaviors.scala index 3ce7ad57d..9e9b47919 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ZBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_ZBehaviors.scala @@ -12,7 +12,7 @@ import org.scalatest.matchers.should.Matchers.{an, be, convertToAnyShouldWrapper trait ST_ZBehaviors extends MosaicSpatialQueryTest { def stzBehavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -35,7 +35,7 @@ trait ST_ZBehaviors extends MosaicSpatialQueryTest { } def stzCodegen(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val sc = spark import mc.functions._ @@ -73,7 +73,7 @@ trait ST_ZBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellAreaBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellAreaBehaviors.scala index 7f75c2098..1e54c93d0 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellAreaBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellAreaBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellAreaBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -45,7 +45,7 @@ trait CellAreaBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionAggBehaviors.scala index 84f3ddec9..40a811860 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionAggBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellIntersectionAggBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -87,7 +87,7 @@ trait CellIntersectionAggBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionBehaviors.scala index c8dce2f01..6afca59cb 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellIntersectionBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellIntersectionBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -92,7 +92,7 @@ trait CellIntersectionBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopBehaviors.scala index 15fe02c20..4e7e23d06 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellKLoopBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -41,7 +41,7 @@ trait CellKLoopBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopExplodeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopExplodeBehaviors.scala index 0583e002c..972a64e9c 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopExplodeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKLoopExplodeBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellKLoopExplodeBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -44,7 +44,7 @@ trait CellKLoopExplodeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingBehaviors.scala index 8302fd833..b751d6729 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellKRingBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -41,7 +41,7 @@ trait CellKRingBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingExplodeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingExplodeBehaviors.scala index 9d0a8b890..d56971f72 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingExplodeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellKRingExplodeBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellKRingExplodeBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -44,7 +44,7 @@ trait CellKRingExplodeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionAggBehaviors.scala index e34df0b15..ee47df8c7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionAggBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellUnionAggBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -86,7 +86,7 @@ trait CellUnionAggBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionBehaviors.scala index f758d93ea..6e0557dac 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/CellUnionBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers._ trait CellUnionBehaviors extends MosaicSpatialQueryTest { def behaviorComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -95,7 +95,7 @@ trait CellUnionBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopBehaviors.scala index 99e0002c6..b45096c0d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait GeometryKLoopBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -43,7 +43,7 @@ trait GeometryKLoopBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopExplodeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopExplodeBehaviors.scala index b360fe8ab..41ae44d55 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopExplodeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKLoopExplodeBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait GeometryKLoopExplodeBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -46,7 +46,7 @@ trait GeometryKLoopExplodeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingBehaviors.scala index ada0d9697..329119c69 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait GeometryKRingBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -43,7 +43,7 @@ trait GeometryKRingBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingExplodeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingExplodeBehaviors.scala index 5b292b279..d1efe88ba 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingExplodeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GeometryKRingExplodeBehaviors.scala @@ -15,7 +15,7 @@ import org.scalatest.matchers.should.Matchers._ trait GeometryKRingExplodeBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -48,7 +48,7 @@ trait GeometryKRingExplodeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) val sc = spark @@ -103,7 +103,7 @@ trait GeometryKRingExplodeBehaviors extends MosaicSpatialQueryTest { } def issue360(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GridDistanceBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GridDistanceBehaviors.scala index ebb451039..89e20222d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/GridDistanceBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/GridDistanceBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait GridDistanceBehaviors extends MosaicSpatialQueryTest { def behaviorGridDistance(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ val sc = spark @@ -57,7 +57,7 @@ trait GridDistanceBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/IndexGeometryBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/IndexGeometryBehaviors.scala index fb4e0ab00..d71ee64b1 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/IndexGeometryBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/IndexGeometryBehaviors.scala @@ -14,7 +14,7 @@ import org.scalatest.matchers.should.Matchers._ trait IndexGeometryBehaviors extends MosaicSpatialQueryTest { def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/MosaicExplodeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/MosaicExplodeBehaviors.scala index dd5b71718..3bf277ad7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/MosaicExplodeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/MosaicExplodeBehaviors.scala @@ -15,7 +15,7 @@ import org.scalatest.matchers.should.Matchers._ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { def wktDecompose(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -48,7 +48,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def wktDecomposeNoNulls(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -105,7 +105,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def wktDecomposeKeepCoreParamExpression(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) @@ -141,7 +141,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def lineDecompose(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -175,7 +175,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def lineDecomposeFirstPointOnBoundary(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) @@ -208,7 +208,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def wkbDecompose(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -241,7 +241,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def hexDecompose(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -274,7 +274,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def coordsDecompose(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -322,7 +322,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) val sc = spark @@ -383,7 +383,7 @@ trait MosaicExplodeBehaviors extends MosaicSpatialQueryTest { } def issue360(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/PointIndexBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/PointIndexBehaviors.scala index b616d6091..06e4c27f7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/PointIndexBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/PointIndexBehaviors.scala @@ -16,7 +16,7 @@ import org.scalatest.matchers.should.Matchers._ trait PointIndexBehaviors extends MosaicSpatialQueryTest { def behaviorInt(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -49,7 +49,7 @@ trait PointIndexBehaviors extends MosaicSpatialQueryTest { } def behaviorString(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -92,7 +92,7 @@ trait PointIndexBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) import mc.functions._ @@ -144,7 +144,7 @@ trait PointIndexBehaviors extends MosaicSpatialQueryTest { } def issue_383(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) import mc.functions._ diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/index/PolyfillBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/index/PolyfillBehaviors.scala index f602d85c5..97dbe3b12 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/index/PolyfillBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/index/PolyfillBehaviors.scala @@ -13,7 +13,7 @@ import org.scalatest.matchers.should.Matchers._ trait PolyfillBehaviors extends MosaicSpatialQueryTest { def polyfillOnComputedColumns(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -36,7 +36,7 @@ trait PolyfillBehaviors extends MosaicSpatialQueryTest { } def wktPolyfill(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -69,7 +69,7 @@ trait PolyfillBehaviors extends MosaicSpatialQueryTest { } def wkbPolyfill(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -101,7 +101,7 @@ trait PolyfillBehaviors extends MosaicSpatialQueryTest { } def hexPolyfill(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -133,7 +133,7 @@ trait PolyfillBehaviors extends MosaicSpatialQueryTest { } def coordsPolyfill(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext import mc.functions._ mc.register(spark) @@ -171,7 +171,7 @@ trait PolyfillBehaviors extends MosaicSpatialQueryTest { } def auxiliaryMethods(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ val mc = mosaicContext diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BandMetadataBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BandMetadataBehaviors.scala index 6d570c757..31def8ecc 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BandMetadataBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BandMetadataBehaviors.scala @@ -11,7 +11,7 @@ trait RST_BandMetadataBehaviors extends QueryTest { def bandMetadataBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { val sc = spark - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BoundingBoxBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BoundingBoxBehaviors.scala index e8c7cc214..037674d2c 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BoundingBoxBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_BoundingBoxBehaviors.scala @@ -10,7 +10,7 @@ trait RST_BoundingBoxBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ClipBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ClipBehaviors.scala index 397f02a95..9d9328ca6 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ClipBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ClipBehaviors.scala @@ -10,7 +10,7 @@ trait RST_ClipBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAggBehaviors.scala index 7756d0ff8..47989be20 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAggBehaviors.scala @@ -10,7 +10,7 @@ trait RST_CombineAvgAggBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgBehaviors.scala index 4b7943d8a..1ac5c963e 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgBehaviors.scala @@ -11,7 +11,7 @@ trait RST_CombineAvgBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ConvolveBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ConvolveBehaviors.scala index fdc09cc28..6af94093d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ConvolveBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ConvolveBehaviors.scala @@ -11,7 +11,7 @@ trait RST_ConvolveBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAggBehaviors.scala index fac40c9a9..5aa00b04b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAggBehaviors.scala @@ -11,7 +11,7 @@ trait RST_DerivedBandAggBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandBehaviors.scala index d883fc5cc..03a5d7101 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandBehaviors.scala @@ -11,7 +11,7 @@ trait RST_DerivedBandBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala index 2d64a633c..2633a1cdf 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala @@ -11,7 +11,7 @@ trait RST_FilterBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBandsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBandsBehaviors.scala index 24e5897f7..da36a46a4 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBandsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBandsBehaviors.scala @@ -11,7 +11,7 @@ trait RST_FromBandsBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFileBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFileBehaviors.scala index 625123bad..7b1bc2135 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFileBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFileBehaviors.scala @@ -10,7 +10,7 @@ trait RST_FromFileBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GeoReferenceBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GeoReferenceBehaviors.scala index e5ab3c159..52f0345fa 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GeoReferenceBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GeoReferenceBehaviors.scala @@ -11,7 +11,7 @@ trait RST_GeoReferenceBehaviors extends QueryTest { //noinspection MapGetGet def geoReferenceBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetNoDataBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetNoDataBehaviors.scala index 69bf7f0f9..ef7b7ee37 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetNoDataBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetNoDataBehaviors.scala @@ -10,7 +10,7 @@ trait RST_GetNoDataBehaviors extends QueryTest { //noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdatasetBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdatasetBehaviors.scala index 99307a158..dfaa91dee 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdatasetBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdatasetBehaviors.scala @@ -11,7 +11,7 @@ trait RST_GetSubdatasetBehaviors extends QueryTest { //noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_HeightBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_HeightBehaviors.scala index a39c02ca3..533ac0f39 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_HeightBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_HeightBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_HeightBehaviors extends QueryTest { def heightBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoDataBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoDataBehaviors.scala index 1af81d15d..89a31b983 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoDataBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoDataBehaviors.scala @@ -10,7 +10,7 @@ trait RST_InitNoDataBehaviors extends QueryTest { //noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_IsEmptyBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_IsEmptyBehaviors.scala index 6ce9771e9..4621af067 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_IsEmptyBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_IsEmptyBehaviors.scala @@ -10,7 +10,7 @@ trait RST_IsEmptyBehaviors extends QueryTest { // noinspection AccessorLikeMethodIsUnit def isEmptyBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MemSizeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MemSizeBehaviors.scala index 316482c1c..967694ca7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MemSizeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MemSizeBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_MemSizeBehaviors extends QueryTest { def memSizeBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAggBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAggBehaviors.scala index 8698b46af..d93337e3e 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAggBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAggBehaviors.scala @@ -10,7 +10,7 @@ trait RST_MergeAggBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeBehaviors.scala index 330345f20..17a122afc 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeBehaviors.scala @@ -11,7 +11,7 @@ trait RST_MergeBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MetadataBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MetadataBehaviors.scala index c335ee0e9..96a906b8e 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MetadataBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_MetadataBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_MetadataBehaviors extends QueryTest { def metadataBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_NumBandsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_NumBandsBehaviors.scala index 49800ed40..5afc1324a 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_NumBandsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_NumBandsBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_NumBandsBehaviors extends QueryTest { def numBandsBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelHeightBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelHeightBehaviors.scala index 0d6565300..4e1df37b3 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelHeightBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelHeightBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_PixelHeightBehaviors extends QueryTest { def pixelHeightBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelWidthBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelWidthBehaviors.scala index 346172bfb..ab37db577 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelWidthBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_PixelWidthBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_PixelWidthBehaviors extends QueryTest { def pixelWidthBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridAvgBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridAvgBehaviors.scala index d41882506..5233500e0 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridAvgBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridAvgBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToGridAvgBehaviors extends QueryTest { def rasterToGridAvgBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridCountBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridCountBehaviors.scala index 5d10766f3..a703ab1c8 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridCountBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridCountBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToGridCountBehaviors extends QueryTest { def rasterToGridCountBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMaxBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMaxBehaviors.scala index df5d8ee5e..c004185c3 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMaxBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMaxBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToGridMaxBehaviors extends QueryTest { def rasterToGridMaxBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMedianBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMedianBehaviors.scala index ade27ed78..c52557a27 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMedianBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMedianBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToGridMedianBehaviors extends QueryTest { def rasterToGridMedianBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMinBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMinBehaviors.scala index 38ab49db1..aba668d75 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMinBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToGridMinBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToGridMinBehaviors extends QueryTest { def rasterToGridMinBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordBehaviors.scala index cbd00572c..e0bbc6f91 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToWorldCoordBehaviors extends QueryTest { def rasterToWorldCoordBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordXBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordXBehaviors.scala index 2fab5d5ec..7befd7dda 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordXBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordXBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToWorldCoordXBehaviors extends QueryTest { def rasterToWorldCoordX(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordYBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordYBehaviors.scala index 9da7b5ec9..ac7b6bd38 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordYBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RasterToWorldCoordYBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RasterToWorldCoordYBehaviors extends QueryTest { def rasterToWorldCoordY(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTileBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTileBehaviors.scala index 118a64e2a..4b73a868c 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTileBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTileBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_ReTileBehaviors extends QueryTest { def retileBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RotationBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RotationBehaviors.scala index 9bdbb7ef1..c86c6c905 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RotationBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_RotationBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_RotationBehaviors extends QueryTest { def rotationBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SRIDBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SRIDBehaviors.scala index 31fde84c4..ec4dbfd1b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SRIDBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SRIDBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_SRIDBehaviors extends QueryTest { def sridBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleXBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleXBehaviors.scala index 3543fb469..5ffd13c0a 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleXBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleXBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_ScaleXBehaviors extends QueryTest { def scaleXBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleYBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleYBehaviors.scala index 1251f660a..57278a281 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleYBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ScaleYBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_ScaleYBehaviors extends QueryTest { def scaleYBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoDataBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoDataBehaviors.scala index 2d35388fd..0d2113ebe 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoDataBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoDataBehaviors.scala @@ -11,7 +11,7 @@ trait RST_SetNoDataBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewXBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewXBehaviors.scala index f7e745613..b031c0bd8 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewXBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewXBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_SkewXBehaviors extends QueryTest { def skewXBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewYBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewYBehaviors.scala index ef444858f..ec04eb739 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewYBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SkewYBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_SkewYBehaviors extends QueryTest { def skewYBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SubdatasetsBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SubdatasetsBehaviors.scala index c8f7d435b..ca424d36b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SubdatasetsBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SubdatasetsBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_SubdatasetsBehaviors extends QueryTest { def subdatasetsBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SummaryBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SummaryBehaviors.scala index 610e7c657..72ce87e7d 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SummaryBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_SummaryBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_SummaryBehaviors extends QueryTest { def summaryBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TessellateBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TessellateBehaviors.scala index 38d3fc778..01e05f167 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TessellateBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TessellateBehaviors.scala @@ -11,7 +11,7 @@ trait RST_TessellateBehaviors extends QueryTest { // noinspection MapGetGet def tessellateBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ToOverlappingTilesBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ToOverlappingTilesBehaviors.scala index 560e54dee..bfd202a3b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ToOverlappingTilesBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_ToOverlappingTilesBehaviors.scala @@ -11,7 +11,7 @@ trait RST_ToOverlappingTilesBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TransformBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TransformBehaviors.scala index 9ce449b13..8d6b1d111 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TransformBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TransformBehaviors.scala @@ -11,7 +11,7 @@ trait RST_TransformBehaviors extends QueryTest { // noinspection MapGetGet def behavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TryOpenBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TryOpenBehaviors.scala index 257d1cfc3..b2b82c79c 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TryOpenBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_TryOpenBehaviors.scala @@ -10,7 +10,7 @@ trait RST_TryOpenBehaviors extends QueryTest { // noinspection MapGetGet def behaviors(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftXBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftXBehaviors.scala index e997a5c87..eac5969a1 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftXBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftXBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_UpperLeftXBehaviors extends QueryTest { def upperLeftXBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftYBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftYBehaviors.scala index d98824f3d..cc2668716 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftYBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_UpperLeftYBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_UpperLeftYBehaviors extends QueryTest { def upperLeftYBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WidthBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WidthBehaviors.scala index f3fd3c416..5fbaa5cb6 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WidthBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WidthBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_WidthBehaviors extends QueryTest { def widthBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordBehaviors.scala index baef5fa90..8b3e6916f 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_WorldToRasterCoordBehaviors extends QueryTest { def worldToRasterCoordBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordXBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordXBehaviors.scala index f9fd82dff..720db8adf 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordXBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordXBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_WorldToRasterCoordXBehaviors extends QueryTest { def worldToRasterCoordXBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordYBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordYBehaviors.scala index bffba09c8..ebbf251f2 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordYBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_WorldToRasterCoordYBehaviors.scala @@ -10,7 +10,7 @@ import org.scalatest.matchers.should.Matchers._ trait RST_WorldToRasterCoordYBehaviors extends QueryTest { def worldToRasterCoordYBehavior(indexSystem: IndexSystem, geometryAPI: GeometryAPI): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = MosaicContext.build(indexSystem, geometryAPI) mc.register() val sc = spark diff --git a/src/test/scala/com/databricks/labs/mosaic/functions/MosaicContextBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/functions/MosaicContextBehaviors.scala index bbcf44e6a..6c4d73db7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/functions/MosaicContextBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/functions/MosaicContextBehaviors.scala @@ -24,7 +24,7 @@ trait MosaicContextBehaviors extends MosaicSpatialQueryTest { def creationOfContext(mosaicContext: MosaicContext): Unit = { val indexSystem = mosaicContext.getIndexSystem val geometryAPI = mosaicContext.getGeometryAPI - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") MosaicContext.reset() an[Error] should be thrownBy MosaicContext.context val mc = MosaicContext.build(indexSystem, geometryAPI) @@ -39,7 +39,7 @@ trait MosaicContextBehaviors extends MosaicSpatialQueryTest { } def sqlRegistration(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext val indexSystem = mc.getIndexSystem import mc.functions._ diff --git a/src/test/scala/com/databricks/labs/mosaic/models/knn/GridRingNeighboursBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/models/knn/GridRingNeighboursBehaviors.scala index 1f7107f98..fbfcd3cfc 100644 --- a/src/test/scala/com/databricks/labs/mosaic/models/knn/GridRingNeighboursBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/models/knn/GridRingNeighboursBehaviors.scala @@ -11,7 +11,7 @@ import org.scalatest.matchers.should.Matchers._ trait GridRingNeighboursBehaviors extends MosaicSpatialQueryTest { def leftTransform(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ @@ -81,7 +81,7 @@ trait GridRingNeighboursBehaviors extends MosaicSpatialQueryTest { } def resultTransform(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ @@ -150,7 +150,7 @@ trait GridRingNeighboursBehaviors extends MosaicSpatialQueryTest { } def transform(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val sc = spark import sc.implicits._ diff --git a/src/test/scala/com/databricks/labs/mosaic/models/knn/SpatialKNNTest.scala b/src/test/scala/com/databricks/labs/mosaic/models/knn/SpatialKNNTest.scala index e3096ba84..3108891e2 100644 --- a/src/test/scala/com/databricks/labs/mosaic/models/knn/SpatialKNNTest.scala +++ b/src/test/scala/com/databricks/labs/mosaic/models/knn/SpatialKNNTest.scala @@ -21,7 +21,7 @@ class SpatialKNNTest extends AnyFlatSpec with SpatialKNNBehaviors with SparkSuit .set("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") .set("spark.sql.parquet.compression.codec", "uncompressed") var spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like noApproximation(MosaicContext.build(H3IndexSystem, JTS), spark) conf = new SparkConf(false) @@ -32,7 +32,7 @@ class SpatialKNNTest extends AnyFlatSpec with SpatialKNNBehaviors with SparkSuit .set("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") .set("spark.sql.parquet.compression.codec", "uncompressed") spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like noApproximation(MosaicContext.build(BNGIndexSystem, JTS), spark) } diff --git a/src/test/scala/com/databricks/labs/mosaic/sql/AnalyzerBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/sql/AnalyzerBehaviors.scala index 09342a5f0..177c22ee9 100644 --- a/src/test/scala/com/databricks/labs/mosaic/sql/AnalyzerBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/sql/AnalyzerBehaviors.scala @@ -9,7 +9,7 @@ import org.scalatest.matchers.should.Matchers.convertToAnyShouldWrapper trait AnalyzerBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/sql/PrettifierBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/sql/PrettifierBehaviors.scala index fc930e8ce..973a63d9b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/sql/PrettifierBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/sql/PrettifierBehaviors.scala @@ -7,7 +7,7 @@ import org.scalatest.matchers.must.Matchers.{be, noException} trait PrettifierBehaviors extends MosaicSpatialQueryTest { def behavior(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") val mc = mosaicContext mc.register(spark) diff --git a/src/test/scala/com/databricks/labs/mosaic/sql/extensions/TestSQLExtensions.scala b/src/test/scala/com/databricks/labs/mosaic/sql/extensions/TestSQLExtensions.scala index 55bdcf1e2..32a695cb5 100644 --- a/src/test/scala/com/databricks/labs/mosaic/sql/extensions/TestSQLExtensions.scala +++ b/src/test/scala/com/databricks/labs/mosaic/sql/extensions/TestSQLExtensions.scala @@ -18,7 +18,7 @@ class TestSQLExtensions extends AnyFlatSpec with SQLExtensionsBehaviors with Spa .set(MOSAIC_RASTER_API, "GDAL") .set("spark.sql.extensions", "com.databricks.labs.mosaic.sql.extensions.MosaicSQL") var spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like sqlRegister(MosaicContext.build(H3IndexSystem, JTS), spark) conf = new SparkConf(false) @@ -27,7 +27,7 @@ class TestSQLExtensions extends AnyFlatSpec with SQLExtensionsBehaviors with Spa .set(MOSAIC_RASTER_API, "GDAL") .set("spark.sql.extensions", "com.databricks.labs.mosaic.sql.extensions.MosaicSQL") spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like sqlRegister(MosaicContext.build(BNGIndexSystem, JTS), spark) conf = new SparkConf(false) @@ -36,7 +36,7 @@ class TestSQLExtensions extends AnyFlatSpec with SQLExtensionsBehaviors with Spa .set(MOSAIC_RASTER_API, "GDAL") .set("spark.sql.extensions", "com.databricks.labs.mosaic.sql.extensions.MosaicSQL") spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like { an[Error] should be thrownBy spark.sql("""show functions""").collect() } @@ -44,7 +44,7 @@ class TestSQLExtensions extends AnyFlatSpec with SQLExtensionsBehaviors with Spa conf = new SparkConf(false) .set("spark.sql.extensions", "com.databricks.labs.mosaic.sql.extensions.MosaicSQLDefault") spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like sqlRegister(MosaicContext.build(H3IndexSystem, JTS), spark) } @@ -56,7 +56,7 @@ class TestSQLExtensions extends AnyFlatSpec with SQLExtensionsBehaviors with Spa .set(MOSAIC_GDAL_NATIVE, "true") .set("spark.sql.extensions", "com.databricks.labs.mosaic.sql.extensions.MosaicGDAL") val spark = withConf(conf) - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") it should behave like mosaicGDAL(MosaicContext.build(H3IndexSystem, JTS), spark) } diff --git a/src/test/scala/com/databricks/labs/mosaic/test/MosaicSpatialQueryTest.scala b/src/test/scala/com/databricks/labs/mosaic/test/MosaicSpatialQueryTest.scala index d9e5fd534..fecbd158f 100644 --- a/src/test/scala/com/databricks/labs/mosaic/test/MosaicSpatialQueryTest.scala +++ b/src/test/scala/com/databricks/labs/mosaic/test/MosaicSpatialQueryTest.scala @@ -50,7 +50,7 @@ abstract class MosaicSpatialQueryTest extends PlanTest with MosaicHelper { SQLConf.CODEGEN_FACTORY_MODE.key -> CodegenObjectFactoryMode.CODEGEN_ONLY.toString, "spark.sql.parquet.compression.codec" -> "uncompressed" ) { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") withMosaicContext(geom, is) { testFun } @@ -73,7 +73,7 @@ abstract class MosaicSpatialQueryTest extends PlanTest with MosaicHelper { SQLConf.CODEGEN_FACTORY_MODE.key -> CodegenObjectFactoryMode.NO_CODEGEN.toString, "spark.sql.parquet.compression.codec" -> "uncompressed" ) { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") withMosaicContext(geom, is) { testFun } @@ -96,7 +96,7 @@ abstract class MosaicSpatialQueryTest extends PlanTest with MosaicHelper { SQLConf.CODEGEN_FACTORY_MODE.key -> CodegenObjectFactoryMode.CODEGEN_ONLY.toString, "spark.sql.parquet.compression.codec" -> "uncompressed" ) { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") withMosaicContext(geom, is) { testFun } @@ -119,7 +119,7 @@ abstract class MosaicSpatialQueryTest extends PlanTest with MosaicHelper { SQLConf.CODEGEN_FACTORY_MODE.key -> CodegenObjectFactoryMode.NO_CODEGEN.toString, "spark.sql.parquet.compression.codec" -> "uncompressed" ) { - spark.sparkContext.setLogLevel("FATAL") + spark.sparkContext.setLogLevel("ERROR") withMosaicContext(geom, is) { testFun } diff --git a/src/test/scala/com/databricks/labs/mosaic/test/SparkSuite.scala b/src/test/scala/com/databricks/labs/mosaic/test/SparkSuite.scala index 2346ad05f..568ba3710 100644 --- a/src/test/scala/com/databricks/labs/mosaic/test/SparkSuite.scala +++ b/src/test/scala/com/databricks/labs/mosaic/test/SparkSuite.scala @@ -42,7 +42,7 @@ trait SparkSuite extends TestSuite with BeforeAndAfterAll { private def startSpark(): Unit = { _sc = new SparkContext("local[4]", "test", sparkConf) - _sc.setLogLevel("FATAL") + _sc.setLogLevel("ERROR") _spark = SparkSession.builder.config(sc.getConf).getOrCreate() } diff --git a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala index 12dcac6f3..58270413c 100644 --- a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala +++ b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala @@ -2,7 +2,7 @@ package org.apache.spark.sql.test import com.databricks.labs.mosaic.gdal.MosaicGDAL import com.databricks.labs.mosaic.utils.FileUtils -import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT} +import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_TEST_MODE} import org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession import org.gdal.gdal.gdal @@ -14,6 +14,8 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { override def sparkConf: SparkConf = { super.sparkConf .set(MOSAIC_GDAL_NATIVE, "true") + super.sparkConf + .set(MOSAIC_TEST_MODE, "true") } override def createSparkSession: TestSparkSession = { @@ -21,7 +23,7 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { conf.set(MOSAIC_RASTER_CHECKPOINT, FileUtils.createMosaicTempDir(prefix = "/mnt/")) SparkSession.cleanupAnyExistingSession() val session = new MosaicTestSparkSession(conf) - session.sparkContext.setLogLevel("FATAL") + session.sparkContext.setLogLevel("ERROR") Try { MosaicGDAL.enableGDAL(session) } From ff7a84083cec6286643f6090b774aa041e529c13 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 1 May 2024 11:35:41 -0400 Subject: [PATCH 02/38] undo local pom changes --- pom.xml | 45 +++++++++++++++----------------- python/test/test_gdal_install.py | 2 -- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index 1bd007dea..8d4a8abf7 100644 --- a/pom.xml +++ b/pom.xml @@ -146,28 +146,27 @@ - - - - - - - - - - - - - - - - - - - - - - + + org.scoverage + scoverage-maven-plugin + 2.0.2 + + + scoverage-report + package + + check + report-only + + + + + ${minimum.coverage} + true + ${scala.version} + skipTests=false + + net.alchim31.maven @@ -205,8 +204,6 @@ 2.0.0 ${project.build.directory}/test-reports - - false diff --git a/python/test/test_gdal_install.py b/python/test/test_gdal_install.py index 2f672fd04..16690a37c 100644 --- a/python/test/test_gdal_install.py +++ b/python/test/test_gdal_install.py @@ -1,7 +1,5 @@ from .utils import SparkTestCase, GDALInstaller -from pathlib import Path - class TestGDALInstall(SparkTestCase): def setUp(self) -> None: From 07be355c87fd26c92bdc9809d007311c90293b71 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 1 May 2024 12:45:51 -0400 Subject: [PATCH 03/38] revert StringType in readRaster to use createInfo --- .../com/databricks/labs/mosaic/core/raster/api/GDAL.scala | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index 68061a59c..94d03fa8f 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -91,9 +91,7 @@ object GDAL { ): MosaicRasterGDAL = { inputDT match { case StringType => - // 0.4.2 - modified to make sure createInfo path matches - val path = inputRaster.asInstanceOf[String] - MosaicRasterGDAL.readRaster(createInfo + ("path" -> path)) + MosaicRasterGDAL.readRaster(createInfo) case BinaryType => val bytes = inputRaster.asInstanceOf[Array[Byte]] val raster = MosaicRasterGDAL.readRaster(bytes, createInfo) From 3b999d064db6798d5f7b1ac97720d0bf81cee8b1 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 1 May 2024 13:31:20 -0400 Subject: [PATCH 04/38] reducing long-running test data --- .../expressions/raster/RST_FilterBehaviors.scala | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala index 2633a1cdf..dc3f6b58e 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala @@ -21,49 +21,49 @@ trait RST_FilterBehaviors extends QueryTest { val rastersInMemory = spark.read .format("gdal") .option("raster_storage", "in-memory") - .load("src/test/resources/modis") + .load("src/test/resources/modis/MCD43A4.A2018185.h10v07.006.2018194033728_B01.TIF") val gridTiles = rastersInMemory .withColumn("result", rst_filter($"tile", 3, "mode")) .select("result") .collect() - gridTiles.length should be(7) + gridTiles.length should be(1) //7 val gridTiles2 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("mode"))) .select("result") .collect() - gridTiles2.length should be(7) + gridTiles2.length should be(1) //7 val gridTiles3 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("avg"))) .select("result") .collect() - gridTiles3.length should be(7) + gridTiles3.length should be(1) //7 val gridTiles4 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("min"))) .select("result") .collect() - gridTiles4.length should be(7) + gridTiles4.length should be(1) //7 val gridTiles5 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("max"))) .select("result") .collect() - gridTiles5.length should be(7) + gridTiles5.length should be(1) //7 val gridTiles6 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("median"))) .select("result") .collect() - gridTiles6.length should be(7) + gridTiles6.length should be(1) //7 rastersInMemory.createOrReplaceTempView("source") From 53de83f86a67fb041f9560b7c65df8d293f615fd Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 1 May 2024 14:13:44 -0400 Subject: [PATCH 05/38] logging level adjusted; no checkpoint test adjusted. --- .../com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala | 1 - .../expressions/geometry/ST_HasValidCoordinatesBehaviors.scala | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala index 2982c69a9..ece897b65 100644 --- a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala +++ b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala @@ -17,7 +17,6 @@ class TestRasterGDAL extends SharedSparkSessionGDAL { test("Verify that checkpoint is not used.") { spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" MosaicGDAL.isUseCheckpoint() shouldBe false - MosaicGDAL.getCheckpointPath() shouldBe spark.conf.get(MOSAIC_RASTER_CHECKPOINT) } test("Verify that GDAL is enabled.") { diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala index 6b81153d0..943b71fc7 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala @@ -19,7 +19,7 @@ trait ST_HasValidCoordinatesBehaviors extends MosaicSpatialQueryTest { // noinspection AccessorLikeMethodIsUnit def hasValidCoordinatesBehaviours(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("ERROR") + spark.sparkContext.setLogLevel("FATAL") // <- these tests throw exceptions val mc = mosaicContext import mc.functions._ mc.register(spark) From 62faf13825ee6f001c4257f3b6966476a6c5befb Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 1 May 2024 16:49:28 -0400 Subject: [PATCH 06/38] .gitignore updated for local notebooks long-running test using a small tif now --- .gitignore | 1 + .../binary/geotiff-small/chicago_sp27.tif | Bin 0 -> 650466 bytes ...ce_landsat_etm_2001-08-26_panchromatic.tif | Bin 0 -> 3147275 bytes .../raster/RST_FilterBehaviors.scala | 14 +++++++------- 4 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 src/test/resources/binary/geotiff-small/chicago_sp27.tif create mode 100644 src/test/resources/binary/geotiff-small/venice_landsat_etm_2001-08-26_panchromatic.tif diff --git a/.gitignore b/.gitignore index 975675c69..f8fec79c4 100644 --- a/.gitignore +++ b/.gitignore @@ -159,3 +159,4 @@ spark-warehouse .DS_Store .Rproj.user docker/.m2/ +/python/notebooks/ diff --git a/src/test/resources/binary/geotiff-small/chicago_sp27.tif b/src/test/resources/binary/geotiff-small/chicago_sp27.tif new file mode 100644 index 0000000000000000000000000000000000000000..bf2a26cfa69705c276631c38f8776a7aab0b29bd GIT binary patch literal 650466 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±Gq3@NdP%Rb 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�c|FEqK-fq<%E~G1h5nqq;Nr^2(GZ>(4 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

xL-IjkWD=~v2n8R1kQF1ll)XiBV({e$ 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%0D3nW;Nj>wv!};;67=Et9gz?-B&?WN-*D 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≶-|S4hf&s>v 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

4n^7bo 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

O3IX*ac37 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

sK3I?4NVRua7>+gxe1 zs%oi6OxkSknrum=xc}e+qJxLNYli$u{sfZnX#?8ce1KqUeYE$Ae{mDhV?N<^xobxr z;-C^9mF@^pG(XPocMI{5Z;fLt*)W1NCYXu-5T9bQSjO#>j6$54)&<-<0x|c^=M({M zyRlE2^h<(>jGru2euxDbJdo^Ns(iMciInd76YT%5e<0N=#2$?q&JLs;-~brcit20z zNxctot@!a1)rVl?{Ipt!vVOg23|uB&s(cG~>rt5*RnyAhQl76$rG%JX&sDOehRej+ z^xA38jSkm`>B|mWuTC?x!__vnvsftX$eb~H5>68AfA@T|oUzLV5Bfyu22Zi3YdBig z($#@!Az$toOTO&|uC=lx7IBE1v|y1uWq-$j{~r$^1;_nx(69}z(*g4JT8&DM6s*;< z4zJZH6&lSdom{ai7F27jk&IIiL9u{a^_sHDOa*X;0L<=zekL8aDW$M>)iTAwdXWFC z&{$o=xF7e6R*BwYIUR@u4}2_*L!_yXM^FDMW4*o}382H9>ilWI&hHDFcHk{IB@0|2 zO=ty3KPA9eIgQi!!O#?z>Vv?pFa@C_*$)EocND|X&GQW4FIkUz0M{Q2OevsjRSguB z{J8!)f&hI90sW4&v!O6Zr>^g8zqx+@{^#@Szy9m{xAm?}tm9h8wGS&btJh4~sJKml zqK~%6)mK&cq1WZmeVkj7g}dYT^z)_ddD$r!@Th8DhusQf=>-JO3S-S8QdPM&SRTer z$Rf#u4X=pD4gk4P_`xD@lWSn^e_X)(Ou?hlUyjBv7rj ztEGMu<0q3~0w(`gk<)6HBq#%0oerL2nQ4ACpDf>b?mt{Pbbw+tkX5@?Y+TH>my1^R z-`aCAlEQ;ax$11njc&Fa8V}AlmngAM_+Mba@QSw&k>moUfL!(CXU9jwoDG`!Dg=}y2esr5bKoRM@INuhXO%>RX*lB8LM^qW&# z3jUWtUrhhgx`RLm9D>x%4?=VZs*D`^_OD-W*Z=t6e{=umy?k4O8?LQtKA+u*&MnLo z5!M25wVUGtf$~g3AhzP_`pN$A^AaBQU z*-SG=e)6AA7?b<=*Of64%lR)Y$k(p`OP?;^auJtMG0+U+Ww2J8_)uZun+YSZ$K$MA zt`2GL#sn!nnA>nV9^2x4AYjv)M5T4zy_p3H0ZN9KXF9`DX;iKaJC%N`Qf=b*44egk zu;^cC_1Yb^Q(8}yEm@Eb0m!tPt#S@VSZ|Ql3S`tl_ilf}5LKxSWT}?91QnUb<@258 zs$aM-PH^8r0O9J71+y8S*n`DbN2O=lD@K7L`D9d367omRco10zHvrYsIoo71&ABNbv`^lmdBdaoO`N2$kpCe$BZTavjW#!{aBKR~$n z<0koG0YD9^AXEcLVS0oBwX#6SzYY98toytC`Corx3lC{7LZb8@>|(wR{2M%N`;4_w z7>nfGHlw0bI2dL@>rG79t^j0|B{!*zJ53925ygB2#@b8)c950=K^;alk5$C_it!&G ze@`lS+}0<@f~42Kt(4+1%aKGzK;8FJz`0~dfp;s9chB$fxk!qW+3D3_c-<-)m&GqK$uhz$2pyoeofqy4KqmmHVE>)rp}qunh3}f59)c-QYd{q`++t>vemw_&tX4;3 z-1^Xcgv#NO$Y@b*cBbu8F=qT_x?aoOp*`9WgFr(`7{4hnqZgG50tlW09iTj*2rvnR z0_tQP-xwBPh2;@su;e*2{r&p*=l}kVHS_c3usp8`HexVrS;rX~Xht7MYGj0vxa$H9 ztaws5my^MX#{Ozi_~N{8mP=$)R*w~$q5k#LPZvEuZXnK0m8PaZWnHYakxP){Tyk#E z>di09r7fYQ-iSqnuOId%VQiR>GN*VndyZiNZ>ZP3wo3fRj#cEpXispr+6H&9yG)_n zwMA>v>~443Ke$QMk=GCZ2eHCeJiKaVX7|0hU_Tf%(s01KY0!xBL;^7UDRlZ)Ho!@E zq(K0A!qiJVlhv-ug-WH&=EJyhBst)u5Xw`D=@H2bu=W4v%KFPpCA~K|oew z6V-ULgYZ&yYWFCSN_U3;DY9NDA22WGe+lKiRxcY)e;|N6b3fx>^&l1-YU7>rU;tf^VlSf%!up!>SrqvE95~ z=DXKJ7fkc;Iot0VXf()rnrQ{Z%$fzO+Badv$H!wf?KO(Us-~dYQ{_(KU5emuT7C`` zmJ9s;{C)%27(bx|oE?XV4isKsg5Xw%O`z%8OyZbs4O2eewM&<^W)7ND?N;j9=9mm+ zTtO~nWhU$!3MwuP2+pB3K{OhyC)vW1yFUtOzSt_`0yg@!o<-<&ue!nrMhlgxcFUz| zyI-LIF%GCSiq?Sug)8t=6wss@n}iEeSN%}}DzP8~4nVG8Ot@c&1>?uvG>l)Vf5v9` zvyB$e*4TGWgdfLu;uS=Y7)ZMH=i~cJFon5ZFI)XWy@-r7=~PP`$m{Ltpw*X@y44Ef z6S#j+z?Tya^@>n9M9C>|^OO2df4i3>6F>k{NL>Py|746TB{O9zYB12sj}@`z0l6Q- z2I(7YC=;8D!;D=8cKPT3`%e_hZ=#)fcqrif2N(@Xf0YqP0#w!*Tu~Yt-gqcD%KMjP zXKqC$%zE>*WwBXuQR>C6QQ<7qqWHEJsBmL-R;(%LDg-NfL6VTEviIlf<)?04@n->% z|1uu7ahiPR`0MA(=Pzzk2Ds)Ta6}b@*@_hmJK~{mCsf`ef<6Xt&LM8MnN(GSz3HUd zL{!sAK5_oLFtm(01hEl@!UZocj{;C`4Tg0e$F$R{HNZRV8mk8nyIYmgt;a?+D|Hl? zr7}`rO*b&;H5r>`?}6trTG0jid~2bm5>b;0`9So|WquUW4Hh&1UQsTOr)(Y~{F`9K zEO@#@sg404_{Zx$%WffJ-oAcJ@IRCwrEE=N8V&julKy`r-Q|)bX0j&eJJ>$0O3q+r zW~Pi}C@z(n#@1%X*7pAY@8i)@t5uSUGCp#D$$O%STAe<63SP;blrNa0fp6crNd%DP z4RThgWYqmw9I$U-xsG=z`=d7vZwHb;#2y%*E5I+Lf;rqfWvgJYqcZSA@ISW+udLZG zugC9q@7sU>pKp%}uouQM$=T|8#Nc|ZL<6I-0GZvp!dr=kGlF;6GY(-i9Q7Jt(%Q@; z;k>V^AaR?r6^UP@L)>qj&{(bDW|zMmDi>(Vu9v2Aay^rM52IHoiDtOb4fIN3UM zBiQ`+`{S3Fmv7I83~BO4UY`E!PAV*bNi@kxK?8>loJ6Bf6uzG3^KD@g&0I?cB?^15 zg+%)vNkmXw%%g{CZ(Y4?jLVHqt#DZ?Rr;A4BS0j7RO%ui>eY;bfc~da5fZ|gUAM{QMBfcZ z#Y`<5yiVT9w%Cd~TN0J;_yZ)=e=+XERiIN1Jjli1qEPk$t>QOn(QVc!4DH@Oz{0#p zhCY7Tll>fi{(oO14GszLm7&7N#=1dRVLr?8!9+{!5A(IB!3c5+uBod-hhQXIr6KsV zKkQHYl5vu`N}E1NqF=`(j-V+>x|s_EiCcxkpz31HimWq=$q{}x59aCf!^`Kp&-dR@ z&nG7Tls)>+HTEopT6`?WLk#>AUF0ch4nEZ!6FpC0$ z3sv)Jq7R)PHKjsZ{|{t=dFia-0B&1Q>Zg;>`bL9!UO|5Ru2%* zz3vwC4*-1FKWwJMdOF>bMBF1wmqXO#MPpHQYKF9`rE(yZ!$I=O1S0w1!-2)i#0U?S z3WaaLz4l|E(bkmOlMGa^=Qm0Jb(Nc)-l79(#6_*K>V_V)eP_aDFh^QVXyV?bxK z?x4}`wM+QNWU*t+Gh$%fC-B4>uMpXhFnR}-)#q|mkJBa#uUZO| z+T#xUdl#-{`M-BxzCDW05v*9xx7(&)mkO;8*{5cpRgaHZ>yT;i0|d2eM5Y?CgdWtj z>R2-ACbdW|QdBN|eHgXNtK_+Eh7OoG7&~YSNYx61$W5|Yzr7*}r~e074v7N#VtlMW z;53#T-tipe^y%9Nnfbk3wXYzliKHsl`ub5)lv3N|6d8pXVw8HhGj6vFx7GS|*jqKM z@3|eIzzdO|S`{P7_8ZIVj#mPh_MycKhfiz_8^E8T1eI;zLeTp8Q5oCVcMczz%Fo#pfyc%Ct3GL~^nAMX~<=<;#!XKfeC?`>$WWfByCBU;p{X z3rXO8B(6}R^%BJ!L*_}kW7TzR(r%a5YH<|H?5@5$3J>3RdFyJFMeB*^>Bl{41O6m* zGGd{S0rXp>JRkQj+@ia+Vl*^SU~n0)GlGx>9UNM8^K51y|IEoj1Ko>Opim5~^}l>g7IFRjLCv za6!Yfg@X$WT0cG+g{C3_|ArDwb0QdHKOJ>*tpP`Rjpnq{n(!l(OOz+W2H3IK;Yh1{ z7CPg;pyJkIHf=bxHfSik;du&u7lADR=~v~21WxL?E8xG}Ca9+jCL*!cloDxfOcIhoRBsRDI3aA%bF7r_UtjD~OPWb+|eEW7c8DT)@Wf|ZIt=C4d1xA1Uq=Q5fhIrb zU&|ayFslwA&fL&{od7_8QwH?Jxrkuw5UCE;oaPS`%G^DCJRQG$`SttHfB);pufM+k z`R(nm|NZY@|NimS>HqcTx1T@1{`&Fb`|scXc-^CH=`NOZA3gVGx-b&CdWiLSux=)H zn28R(gxzYx%t>7Lb%4db@S-_@PgwwQ1o*xfLH4>N-Z`iS9?cyf+I$F=St7&CY zFS%N)TK_`eQhXpKf={6zU>?UESpm?s;z^-U`BEue^x0>C#L3)gh+$;0r>p{e2gZM z618LlM;OT5P`k`>((L{LjDs z^Y8!s`}eQkKYqP^e|h`%?O*@?*RS8dK7Y6HKR>?w{PpqYuU|jDtG-A8<-_u)*2v=0 zEi55eQ09k9Q6L7~C_aDR$De{5SIulbof(q5JZ{i-m@v98kl)XT_wAQ8BcI`rJm}EK z7o)QUiTnAc)BBnB(cCVP-ei7?Q_;I@D=KOFl}C>2>2_K#wVK0TyVq-#>l8pFg=D|1 zqK~+L8U|50Q9ia{G~H^R=et%l`J+)K^3r+5D^SJ)Nu3q_k;;@p5@3?19w3j&toUCw zU6Kt_wL9nmp+1T*A1PJkg$$Wb{DAUzVeS{%QT4Je?W{)wPW&C0U}%AP(N4^!0uYB5 z#6F?a%Xri*Gy{W>KuU?+suZ#n;betOIa}=8d4TG2zZca(xmCEjY87rGy3+;-04VzX zbRsX2%*v|qO{=S%1i%?}h#dhUa?1xhp!B!oD9ZT1(13)Gm8zk5>->F(var!;vza^= ztK)AA{rmg(Z(siPkH7x;_3O7U-@bf#egF2KzyAFB=T`;5_dh>=fBE(C&o4B4_joJp zHG$r$3nRa&A`J0cYR9#VLQzO;VAw3mAv$eJy{*v+`D}^EWw8eHzIk4>ec$(lKkxTT z+NdA|rBD&QcnJ;>-VgE?A5M(4nrVVvB1TUMz4WVKdSurgXyy=>%Y3fg?wZ&=8s-Sh zWPymB#2^AP0IvaLl2;Axy3J)ZY(GA2Bmbn2l7E&;g54Xrz}t!zJ|IlvQ*nQpOeLKw zRx9aZxeYN;n5FaSlNaEe9+2xI81xHw0CrV}m{9_{Qit8^j5sLz57D@h0}^H69GLZp ziqx~{1MbN?@8w#~huyMX&*IyB(ujLGqC@VpB1d|=X)IN>ku_4IL9JM&Tq^uwyo4!k z*>teGWL=io(GQ{@r6<)biUPcVQa~7>`v5~N1Qa!>^H=}bHkW|`Xk!8+CIh|_lJZ7g zxQzRiP*>pV>yM9LfByLX_1Euze*gaGPpj>HetG)xuisz4{rvXr%l~@$_T}?;p?WNX zp5>W*M-b*@T2+>o8B@3P+yXe2g-raS(8%!!!z93}e@u36DzEY;ehQR8?;IntB`{~b zzZ+5Zfbp;ox;sM%o zx%O=LMiR7*yWa+ZWk=ZZ!tj^lps*Mh)K#sz;dI){T>Jp_3?D!uOJ%Le(u!M+E7;4;RkMGcWZ3PC{So>cfxeLo z8hO=6I_~%_JNu*)vg(JkTB_X&Gb$xwvt$%Ov(kh)BOYi}Wuk;ju{DANa40uBt|yyO zsUJyR@vF*oNbBs?16LW)Zsw8@EQr65|N2+XdceHIK`Ix51rAXEEt&>Bq6@?O@Nxgy z94;j-am?k z?)S$%d5vOq} zp@Q?T$i71P{feePm_#eTVef^f=;V(C@iQIiE{Rd6eI4MAi85Y(hlg*#wPLe5-`4e^ z*{?O5omw4nRvrS@(dIsT7_6dZ6ajsu^DN@rCrce0I9x7N&88*+Yu|K9$xP=InN zoh~T)KtNLBq|p^kiYRalUT^6f}F2}mb}J8XxeGO$dQ2Z-Q4tdXOs1VN8EHvo<@Rb)~_ zZ=g6@l&ZD1N1bDio;F4B$3-l<2jVvQNr4I{p!kvl03u`u zB3-2u=l#+?XbTgspr1EGo+Gry@{=Ea|MvFr%{$Kw`1$?g`=j#?A^iOE{^Otj`1SSs z&o94VGb~slGBf$Kq2u1fWZCSg%9L<@*pn9!`L5v?fL9J@q(zL*`hdvlnaT9d<#_*> zqN5%1TV$2BaT?Ze1N=2Q@u{nh<&N zv=JTIGt{Lc&Z|*riik2gihIoy41criFt~8%VlA63^GUnKqRP5aX^G0LyHg7;-&TZv zm6Y9SxxmF-(T87g8EX$6(45&;#T!elwkDk@P=tH(UG~txzq@At00>;<{=l-R&RdgZNE$ z8lHyOC6z|CZz`qtTic(C6;uKG-Dph7Iug)lbpN>uKx9ooKp=v6>f?IQ^Ihicmz2)s zN~RgO$alF;o~5Kc;C}B{DkzUAixEifn;gmXqQlnuIRsZ$lN@+V5V>}kqhBY?G{Ih1l`e&ChgFxt znGeqE^BBP%tHXo*S>FoLX3Qa^=vG#$+N42>pP7$n&BMw=G`WUO(;=xdw@<`#hmkQ3 z&8~T)y-uf7D{__q-Uic6JBCDCg6_aJjWu-mXvDL0(Ae!}dRTM>~-f2pp%XjMCA`qz4 zVOMFjL>1X7-GUVl8!Y|fAuuICtPRNTkwgJri6Uw(cS3;X%__WJ$j&p-e1TQWS} z@7PQNOjG5SQ3jO37;mDnwO+?4>(Rq*^Q`K2SSd_qNOzg7hmFaM?=RbT?&?)4C0Z^5;8e3v zxJeg^Zh9$@k^T`nz-m30i8r`X&ms!13<6VfdvgnDpeyuwsI2_`>e8H;*ahci1`CB8 zo);Eg(ls^MENn6dqx|;1!krBCR~euu=x0A_7h5e@WZ=*MU~05}ae#70VU#G(-AHvi z6!}Q1-sp5&y-Fol!a2rkujqH9r;_LD4@>FKzD|ulVe_C-6bBu1 z*=pSp*=?(k7S+6;oN);}2Ab#LJZ&h#ZY z^8wilIK{D`nulHNh^Hjz?Uvd=wpd>J*~t4seG;{QH&?3{S^-GIBcxN3q{W|*fGR~; zUq*SeF(}BK$VLl~+jFdmkcof22mjp<_?`0%-;eDP4IqlgdS6{-Kl$G2i|d^DuQ>M? zKp@{W$;s}gO5pvS^{4QXnku%mmd3y1S4@BmN%)&H|NVz?(2pPQA1@e4>(ObIC}T^_ z2{C}nnJ7dGuNd@ENVAM;xAZt!LmD;@r=bXIy#9XstXLaqq*9p{bm)P-B?23$J#>Kd zN3Zf6U%o^IjW8jV7O=^Qy zXV6wkYX~6ky!euL9cx`;d ztdA0tzW>6BjuC%Z#^ex#sP;Ac*Z&QFgh#szR0teDP-?ngG=Q7RFdKpp!Vk3plsF~Q zB;)+OeiopBW>e9Jzn@20$8OjYYv|qkUw{4n@#E|B=a08%f)5(SezTz8%#~wm$7rlb zJ3R7+3Jbz=Y6-{!W^_$1Xft7tcOWp8K4Cvs-eS?pk=9fp29Nhr=f!n!ZJIks^!@NI z747lE6tc&sFGpML<#h{JCiNFY;f+B7a6k)MM+U+Ha(scuFh{$XBueU3eZ0=(0>Rb*rCg2v+d4B-l6v-ZjCsL zL3Q#h_H>jwItf(>tMf@QpBRTwjFx zpY|r=JlCQnjbMhch=NMjxbz_w}_eG!}0y&$L0x1*p3f6Mgb}Y8zUJJ;(^QQ5C`}wZ> zC;X1z6yLMF8%N*VTUJ5(zeq@c<1JW+jmhAlelr-V(j1MO-Q{4_>GhheL4QO90`D;` zLZ+seg0We8Bcn8h?zX351ju66I#k)xXN=y&z0s7HY`G`N!gh~gxcG!3;^Oa6LRVVC_cqI2j^~&LeQ+tZ| zUd@r(1{5e_VcS~kG$^EqPHNS5h4e$c7xMIiIOO83J1A4q__3h+^@Y`TTV{O32tT_n z0Nz+=tzbyG0_g`o5du2lQQt*P04YA5{-_LG94?9MnexEaP%OH&xIoj^-qrhzVI2!KpyfZg9v&5AYBmV56hv2=0p3>jcVVH{5+>x1d% z^@HR_4DQ{uDbU?kdOnKup#3r4g=ygKT_pE=#Ivv)JO2+K)BysU-+#Tnecnw0i_jf_ z!Iakp=Vx{QQo$69;H&sV53mn^M47Oq8A&yhZx zixcth6e#myZ92{jOT{7%pi_-WFXV~|uzxw5(TSS_;Ms3fHGlaWYB-;XTfxvE2!PDI zOAC+vEu?8E)YZYX(F9&4KHUlh&Sl)F`O>7EXtHu)Mn-I#kRFCOB6c(=wp_Y0v+|Z1 ze6#P(nj$G{p+68uRCW2(nGzf_Aromb$|46{xz;JvvQ@o#KWUhPFY7i@d;0*$XmB z2c=u~bC3mBx;noU&p;6b;SPcVh4>&>h^&%oMp4-86lwS3^jmz4j?>Q21q}i}2Au1^ z1iy2-81MpiM@pHfV(?d}KkS{T6avYTU;%$2(?+2-+Og zhby7q%-vO+CZDSm@)>^qQZ1zih(@#?sH>dy+-RUfG< zAbWXv70R#h+r*8V7Q@q>U*B?XMugQ&gjqEF$K!Nu4vx_Y&V+mt4IpWvWQ@_Io(1iz zI(m)Ju84t6R%+Tm%Us*QzE17mTnBj9lEf>Q+?Qt ztNA3|&K`gn>EGt76ZXu_ZIQaf(0>06VPB1SSGpMZaEODr=`%Jl7jLqA8}8=p7Fnh7 zZtK~1@S#6cpFp0+&&Styf&=>B&*H}d@|Ei_n;qSn{#f?9%+OEwR=wS#{Zvo;f6 zZc=ksalT^!|De|Md^Q^fJ9la&8)V5}#;YPr&HJzZUQT+ut`r#sU~8`J%2sYoeyOHI z;HlhV@G6D$PbKKmrBT($$;HGPafcH$CUVHkq+PsVoB^dgjy{3EUcX%2=G~qqotJ3MR6=6e4!$y|AE`)u_i}INs)bWSwd4wEoy_}H$EBF5?;@|q7%03l8;l;)dQAPkF>sy?B3738MJJS`}wF7LltTx+n;cg?mI$% z{5Ztl2e1JW>?-*B8CFPZ$Zj5k0*F2qGm%nM;p>TcU4}LH7oLZ>ctAW8cfo|bd@zLi zbz5x&V6%=P=~Y>=PkQOKzv-|_CR#>1GSFzhrYWrB|^*GMBP-~+|aoD?u$DXl*B z{G)lV^2}c`6oMKQ9K^@gXhVnv|j@mq9T|fjC+sR?e?4bKLghS>k4NClWVa zo!LT09`E7PV)SI-sU{Z9p#ltH8UZjz`*>I`wuMmkL{T|o@&Uq9aH_^0 zRBX13vfz|FY~s>Kk@F;remV(RanBF1YFco`C_L5Vy{@^hYUZaoD8_ zIR^AB#0Etc8OUDlDw7sW&>e7sU?SA0 zh1`Xfz^?;-3iob8zhM)dnw~2iQfsJ&uJ^jF zfzFP+%(;VVdHSbg+<_Dx$gwGq!dTmrVyT~1)t8`q=)ZXL?Ev9#uwFx90B@-j;di4B z56%>dw@3?0K?b(8LGOIF{ua{Pvx_scfHnS~{zye%kl+Z;Oy{>3tA`2gyu8y17gv7&6u=GeF9D(Dn-6Qt_RFez%85DEGTDZ{i+;X3+9I2lOWr8`$&l{_X3xXEnuk zHyMPX+(4B1-QIe)vmBN55Y4&e#Dq*yDiV?74#*|deeE_+f2UJ%M~+7I9!*t`MNP>+ z_W*!=Vg^U>f0Hq*{c>JwcD?`BGtG~T^8x6WT9N(5a2tsq`V>zi-G45rJ4h$1*<_g( zw@8}<3Z~6YECx?9 zDYBbRUCa-+4jjPbo#Sj;%?=QdB8UJ@Rk9P0IC}YpQdLPHrKpsaOar*1FI3!FVSfSq zVvUmtr#bvRNl^sh2C^ThJY4m5hri-G1lQ}TA_R+;G0HyAgWwXp@r{-o2I8q_c<_IH zIO}ofpRY?j;hdWVYb{ZQA?-T)Wn^{T3$s)D$@kRsv*m2eiVW8F>8)?l712YN2y-RH z%lq$50p4}ns~Nkp#&`@cR%8KG#^yPk*ot8?ZVZ8^k1- zbE*)Sjk|OoF;al3Ct>hsxs=Rgs|n*M@*KAggMvR4G;Y+qEErHwB~wT!w>iH3WS$_XGi{ftl|+-c$eqSOZf;V%U$Ne(e0P7q zKN+$lfN&HiA^wPW-zd{dj{w%sYYzy}G>U}q6Zl5pz^p^51h}~kv>Ww1?#8rnogC1{C*s>7H zM)9%%Erw)&`GPFK!#0qA_xwAjpY?x2Kz}d-e6S#V|M>b<`XyDFTY7gdLpnU1+j+Y_ zF#0RzHDj0hll{C?Z**qH1q)g9J8cWWuJszdfl{zkZc70e6{{1D1eo@0!dDOYor~63 zEQ!OqBK@nKjATbb-elUKH^fgugad(nP6|XW*Q(Oa6IJne%J+kXlnF(#GSy;{w@6T| zbDAjUE=#r#pH1Qn=ZAU^Xz=o)JSd!1A3c=3*9Y#I z9qjYjq*pG*9C{V`j8MT;gQ?r%K!ykYMg;I)XpYlA))v>w z)m~pQG$x|b7e+kuybIEJzI)rQ#%qz9-Z2_4IL%?Jcmn{^H1>_@9uJ$Xey_(AOry#9 zE4UQ&Zi@%P?o4kt*gb}0GrC@6{dhQl05%T_nA+t1?Ev9*bBm1yI6+MBpErY?WQ^vp zQ*+CAI?}aFpp6)xk=A-zD%9G&PIq8Obo)5nN~70r3_AJN!t@2@Bk-U7axv=|_)d73 z;Sp;NRNHw|WwPcyn+iH}C9HkUfbk8(F(-5nYihOmmp zthRmrLR9YOcZ9S&jH@|YeW>lCvU@lJc_+HTjpQXt9*TT?tFNZj8n){Tfkp6RBRcln zf{PWw4THVMWyb_d@=x_^-Nkjq^bzC7-=20KkDnQlD19l>@r>pHsN9!E5$4K^&WN>7 zV$%e}A6I}}m0GUV7;UE2a<^TZmq*QJuW1*wjdei-O;Zh!FQB*&f7I{+b9FE>NX&HY zwz{c7)8V>l)UrzJ;Mz0E3PZ2Ux0uWo5>y=NR6DY392o&iDK@NZyIJj${Yx{-838ZQ zD4V%FyULbs&-sEbB}4n<&vX6KO`TSa_>k|M2;6kfg>cx(RwA+sQU6a<5fhB55V{EYH;Mf*defC|a?~RiJMVJ8*J(Fq#92_gCG|}o z^=d}E&mQp`HIE=f3@@91P`%K<_rp7-KX0`3j}J~kqb?r}#hYRdfVZoD8Kgkjr5EbS z4&qU1%$vRG#1N0lsBU(r7f0rv{n0hulUkw$3(6HKnny!elth(c{-zLPz5y&P?|7x0 z9*r|8WUnZSQZt{eThA!_%7vOYH+z#WDhzA9v`NUh^v7K4+Axqx4#1BDxb@GrlGEsc zEtam&k*PZJ^GIPE*8eB9--$LtiO3~#iFyCm6Aj>G;&YC+|7FiW`DDUpf9iLuoG@mZ z5v5V9L*BeY6Na#mPJ72#;2xaa)?M6f0Hv@)H9@Bq>c=q&y%~1~rFZ!o2 zdKf+WrIdY9^#Of-Bj%4weNzT7MZW_DKCpog`~LW0+9CKAj-9VBG^iu(UtgN|tkLVt zInT>-)kdXMp*^hEd-HXx-*1V~kTp{^%%xfzX1n7q`3#YNq1-M=RTy?meB-a|)b%vm zb+1KcujR|pcW`)7f8(_3PEE9-?4sh^&(TuYp}Y_k{Q)-vf- zIdg6nBtiJ~Z6R^l9o}3tkd|g0!6=ZTK=D05Qv(QG2Yr}<#|EZ;77@hO4{)sb?HfSJ zeB2084F<|QqG2r}J%n~B*gWQ;=Q4T%_2$Apg**h|Pjc+K=l#6$N?l#2&isZUe4c}X zNtIW*%Mf}6JQ+X6|6c_97x#owks%I;52s_k7ows=c}*kQskt(D&WE=iN06eCBJ* zSEdnd4*L)?qx<)V=&8rIH(CHa#1R_sDjDfj6w&>7^l;CSK==AL8HFgpa8}D54rzvmz`F~C zGjUHfGpc$fKgNHYHf3tMgnKcNv|eggjZh38Eh!5oS;^gGkRsV~%~Ol~7iyOCY83dz zL;-=@nQxR})9N1?U-X7L5qB!pX*}}y3v54`mp~+2ZL&Ei+rBGU#m+4 zLU#ZF@H@>=^t;osbbN)e7w|sr142JsQw%BA`@wT_pdWe!zz%FTf*#!fzVoG=TI@ug zG%@c1f^*&Fgx!?0i4s{5O2xg~8m2$> z&15}@%iAGI-_!W<_hzEXWA+V{FTTr7`XYChzRvs+Y#*eDPe46z zokdgGOLl|Jf&TT?*;R#nZg@Z40Px?$ofGCg z-DCRXmk=;9_cgbJq3hxu2_Q#Q_F3qNcTaDTZt{xZ?hLwZnaDoed_|zU8Z!z$tk1nI z;E8#CApehx;9gRvCrKzU4_rzJkAp)~=LlAN!4d7oT3wWFfAwuRP+n zf&nt`6_Zm=UXyz$7#Vz`9ZMG^g#;^DQ1ttZFHxrmcUjxUKv)pr$|Tq6Y4tKa-;vNM z?~SOzU<^rr@t_fyCPX9RNKvB4!%zryy;W?Xp+%1n8M7i$uVDL#e_B0{eXKpFhfbcT zS344Z4!`mR%QqZ=;WO(-2lWbD(F_J9sA?!>bvQ6(ml#CXCdxBmOv8%p=hBHtZ|biMSEw=xR*CrGW5XFOHM9 zLr;T+-&eieN7l|po}nYmeYJt}K5QrbD9+e!VT%ox@D)EUeUB$Ua>h*^HLx*604fNf zn4#?s&llzgd7=kc$U&^Nq($stC`+kR2C8aAx>SGivW9?#UbVgI_8t6=(zEM;_km`O zQKvs>586EbopwzlGphAeh*gsx%C&axdU|X%{FqutoI;Y=PUm0BrfZp$m?v&IDvzrG zfyFT8^aG_tx)k4mUa&&q$L({@`Ymby=2Ni>bIAnblFM8chl#85f{l*<NDjJgE#&7B>YD<>_wFA!;HMH!;*m zV2J2qL$1486;Y`Xq-%Lea9%Co2D9g3XR!gOT2qZS&cfT~mUYo6H zILvU|@3YUcZP@LYbTI=qz`WZdyC)m|1D>QCV#1&vm7B22c4d9wPqjBGqx?JGBZq$Q{43$1=+G~1%Nn(L4Mfm z3(i0a5(S7L68S$Ekk&$2%B>ufv#E>hxPEcFerK3IS$nSXS~+=BDc>Y>imyU3p$wz} z#RcGH8(|YDCoiykm+nsBz{Tx(sZ0}YWn9yj=}Pq`Ndj$jPUxTMeSj*6EW*k_{4iPo zF<+fwdFxrCHb~>E6?=+5zj%QZ*z%Kt+rByGLOxDEv1*>G1HY(=m+k4s0r16jul;us z&?Bk#gWk{nJxB3P=k44_?Qjj!!LhacToc1R?^(W}Xkq8Jyh| zd&4hNtTW4Q<>(4Z>j^3ty6vZf4xXS-CtvEq97e*t32EEIcC!`3d_clYGrlUFcmaH? zQycU`?p;#2)ntTOYma=+p!V9jBzQPOevc)Bg|tqA{kt^?G!qN;;4e+8){ zi6U{09Ej)P1n+x0A_nT3@JACU6)3KX$P5U&k9mMd-P>YF+|70V{3`vpBsS}N0Gxk~ zIicRu+v7V`xJFO3hHlN;%BhYT(A_(l(OlonhZE_gG8vU~v(C^=+q=h)yN{>G^}9<% zhv>|qo)M=fC5(Z<2&^qtH9 zSuK?TwW@-7I%tn5d1b1M1_M*WUbw1b7{gH zLM+Gb{LG2Emj9fHhAdPgPMLT0I^W5hx0oTc{!09aC?KiDq;vYpr(Sa+Etbeg-1TBK ztz`%njh(9vhL*o$9Q~lu>{5HwYF5|b4VxZ*flt#fWeZrcs7C#VAbueC;2tHyi3HTl zJK|tHzcDNi&<7KdiBiCx2}LL(*bl!T8kb&Yh}?g-1l&RFGvT+J5jA?$@h^wV2@2TpU(wGkX3KVE zeh{R>Ni>+ymbSVBIS*4%FI?OPX!3dVM5G9UtXc8_HDF&k4Z#kYuU?CJ@BU?zldD7w z&r_eiAta!>lCFegVYUT>gw#7#;E>7Is?729yq28a+b66?CxxliQ`uTZwkiv#L2x;& z%k@QqRa1$moW3mI)T*~PU1|@$RNR9{GjU)H*YPVWAlQJIed`MAC<>012m zR%|J}YIj)N&zqB}mmf9+^_iJ))1R2eF`LLTeTrVuQ0qAUBo4xk9w)Dx80Q6zH`aZ^ z)LaM~zp^+=2uUyK-+OK{hhOv`V)XvO6ku6NtQ>-)#tYg#n)30sTcR~@GgA*h_%yzZ z8#%K(X{10fR9dxucM#9HBi(3*1Vx?N6$#3+Z&SEkn>{nS*y1C zo!lQntHTN?kj zv%d)0d&g@NnD5|OZ%W)k!5+gkae zVx*OUL&|@HiIjSGqa_t1CfJ!L{aKNp-5sZ^m*w4PT+ZrM+fAB6#Ix`w4kSoMvq0G8 zVvEb(@s0=wHN0y`^@hBG{Q!3443T^W)?;tLb`*-<1>kVR0a;iVQY2NW4o@3{NElDx zr}2nfCGz~@q5*WQG@X043*@+Y_X8e@8f=K?O~m^i_mj>*y|(F9^NB*EwYt;a?T=anOlH-OCFo4n4YM3pIdwRcSC1_>6dZya1dQHw;%0b-_0DycH`f7PL zFOO1SOdO}Ed~bQk_u}@quvmP04@(S{g7>-t1cAT`o%IvfCnCab@>Jro9Di_bG9Warx zWRl&=O>V&X(=pT`2Kb1$feGV(I5d{i9(i@W*c?haUt)M6;-;e=$0EF#13*9Q&`}(j zm7qeN4o0*ETwdC#Ubze41@I5YttJ*3b7QCsB_0Wz7tH6B6hM#>E0T>=2XY`~6x7f1 zg97U?FuWpayptX($emba7KDT6$rrSmWU&l8!Y4i=SJYV&8rv& zBJ`2_B@EwTq(}i-oUUB(=ze`kG1+GNq8HNWt^9end_42Zg^39=@(rn%m>{fzwaP$k zh#=;)aw~sMkwU)2QwNW23{3NJ?48pvZ}{~9O_y#1%5E*@NnPmqKViIA8JtgSlv9sq z$dkw1%^s=`-}5GWmO6(WoJPDVB3MGgr)K4)!V8IuIRTL(rxO^M@iOQDT-0l@I0YYO z=GDyH$9F;n6~VzhP6dF@C1Yrjip;Pt(_u%r39g^tx80u@vnSSQr+H**d453nYYd;D zoe^}^)~XM>Y@^{G$yb1~T}m+`vC(8NDHcuw{ISdEx%VdJ^p+;)jr;u(>HZ=@JNjk3 zp}^tpxYy;&R;t5A{9Hy3d4OHRgps%as~zDBc>156^{DJbbN|wCX4Rt@oh8uuz zM^CFhb^~DQv~10o0@AD32kk~n#-lNRc;B`U0~IfYwHo1s&>qTrBo0#aOjs~60=1xRcEl#QQ1R^>wZBEKYgNPgQ zZxOY#*$`%V_)}VLW($}n7ZHsz8>Bk}z>oPrEf_-f=7OW&+7N2#;M^_NNZse&KY{%k z{Jj76hfoK1egdqkBJjlf0^9@S9J#a8X7LQLcdPcp80y|v4~CQ}kix8=(m$*J?I^W` zpYHne`$Kow=n5#0Jca`}p5)G7AF}uFkZx9TCAsNU^Sa@t?SZidlVMBJ%Cs?Lq(bhq z_N(^gTakuH?>SIx%}6+&xHtj2j~l(&uxm`v^tc$+!6*ePbHIrqQA+M?*>KN?wfBHx zn~{rgdlq9JM*I0Hq5$AV|I=>Wwppojjt}i$s%V;fHd(BU8zml(a}RX#$ni z*94MVZTAx>NjD?3q&i+tJ9@c5^(b=nep#+urCDG-9_X8M!jDfvodC|(n{L-q`~IE> zYl(fh6z_5B5_N|BKamUKeg_7dQUU$dCa4on)xOK$JzzFVGzdBt_e?7J`fdJy-oAGA#0?Cv*5Me?25Ni+d2fA9Y+QYbh3 z#pZ)Bz9xi|W z5PeTYNRd4tq{zhG8kE>8dcKGWa@wO+beZ_9PN!cMOxlI>{rL$WAsI5wqX`OvFx$K76gJL`07opDV^K4A}&|F?taKJGs=x<2Ct#riPbh1r{=CuKBh>=?SW)bh4B0xRXZ!1S+iO`yi3#s_;_|@Hv$4Me*`(s z@fr@Z+aJc8X?r+aBHLRdr%PW4+-(gGoIplxJb=8}83F75@ZY)CQJkh)vA5y42LO_i(i z({Sg5A4!ySG&%rSyh8AV3Gy*WZS-4{4N<4|?7Q%r^gj>*CJ``EvzM(?SWFvRBJEW#mL|12xoug;vT+NfFZ;{Pr}UIA zj>1>v|3V*2HgSMp3j33=uG@_xL^5|&5|9SE3>K02(jV4EIp@wxZf*s=BM-a{;g(Ti zekmPBEUVlZ;$GV!8oV^}-qp=*7@TeZK6+BGL3H~e_KRB5@(KsCuY5x8k<85{SXtcP z^|?;rlDo`zaN}HMaIeSvMJ_9@Z2cC`(^6goHb+7Kd{~9_>*e_nQO;rcQQl5?e5W0v z3t`*Q4Yqn%LFDb$L^I=-l#n3~6aL5oBz19d(CN5aynr!=&BbD7V37HKy3onE1&fJ% zZ_6OM64E)`OuAAVK|p|_iJ?+{^pZAGp;f#o1%~bF4{QW&<5XmB{%eb|_D*xw^FY={ z<*OPfR(f=yokp)c01wMhYkL6HgPk^FkaDzU5?Ml@Z)_gjRR)ZV3~(k?)){g^U4I_* zg7GV4W%}jJ`Lh)=rUube*#i;#l)TBSsiW!2=U0u}%d*^au_p$ON~gtw()cF1QeP#zdFgW&V!>VQ0MLc455skOq|?T}Lp$ zMn9fjaTK6WxqIbUI5O8)r!Jz2-0bSTR zewOAOj#kym04N`_Y(5BYnG~c5zRurPLHf{?SUIm*qz&?bu zbw1D0ps4971hn@-94Zi^fQ+xnL<1{*uHA|HFCH#~B7I7B$aR7UkA1&iCbZp7$$;K) zdA!~G$Y6u$t<6$;z6<>oE)zz#G<%o$&Yg;FA+49XqhHejJng=0UtacayO*6ekOtb* zA-B&Yo}B@a5*$|^c_XgZQ6`3>aN|2@Hy6W2znl^!w;Gx@GQ{7EyQ4{OqF|Qm82;a_ zVGT6cAY=-gtA0o2+a*+Zhrh$B~r7P$t9eVT7J`gR)BM1(jwk#6fWrR4N0r z-iVy$Z5ee$5Wu}_peO+40!01;MwT?>=`GS3q7uRuf2Z^ zEZD=Z%d=gpcwJ;@?pA$_8ku*GsRzLMmaR8rN~5l+bqv~|_-z^gBjEx6!}6I* zvO8w}#!gMx<8x$;NSXe~h?g$3umh%iwzx&JIh0Z1>g<}@-->-=t(6QxR!u{nA2p#b zy)C5=A`Hy?6ffr;;&;7R0XJk;Y-k$w1M|IsM*7_cc_cEZdbLuon{(mByJO#Zu}|;0 zZ^zmx>J%aIZ|x3up8C+~HSFW!JkR}YRpWnFJjd2|stj$UPd*r4U`k;x0FKiC00)5z z1oQ{BHYtLY!ENC?U%iQbYt^@#&hBY1bD0&3H`xHyXz0Z@A~H)iHMpV!2E8v4z_;6f*Gn7Xqa32)^VRd}ljg&hi;Ju+qC_8jM*dGB-9jrcZ4H$&H zAB+`*vsN<8BgCF7s?qY>0B(*o_J1*6@20eRHEXSLQT*ZiOgMDI+0ZKg*a}`?0X}&> z+;uE!C~{==XS2m*Nq{?Fw|rIEpEX4Q^{*joLiO{5szwnMStzo8cy-Tx)YOx>eZaeZ zx)>2kxpJ$lK~ztg|LLVsVq6JPyTHF)$bt#__foBq%*;D-c&TE1RmNI?!r^~DG9oFH zQJs9R=a^!G5_G?xQ7$2Zu^Fkxuu^Ib3YStGGwBQT{1qM}YCqVr!H)LBsh$IK7&Bzq zbvt%>Sic2%QGZ|f=a2w8^)MkTYa>}zaO5qCpbo-i76?&%H=O}l3#e368;=JN!_Sop zC2VheeClccwC?H_7FC$PIUB@T5e{->^x91M7FWyT)40ROcDJR)F|n+zjhl=%W|30> zJRCnm|MYhr^+>pnEhFgjVJi6m1rM%;Y`(c(PlZn@=lxBD=xg@!=yQ8(@h#wGlx&zkul#wA!tYef$sdSe&ig1Il3&nNebE6CfgyG!7m%4a3>RyEwSi0B% zF|3{fc>QoN+Icm@60BAaPY$p+o6P{X(r32rueySEMzqZoT?z@MuiB1@RM25yoy!UN zBg-|N&;l6-QHsCmjyEqaYpLDy@nSNcuX+f*#(ak*46p8NIUFjImdnLlt+824$Ex^U zi`;RxeI2TQwE&4L0V^(4H&~F0s(AzbsS~m#w_=_iuad}?q-ikOB#IGA&})kE90@F35jyif(x?1+2`1Iw?p|0tY1sHY_wuV3v!z&z!`dcn6oYCKr_~-+vbA=% zuImrMuFj5?%p1pj$kKV*3!dyCnqzG}>B>_ZK7Ey^=)@4sKJ@P%R`;t%;Upno*h}U#m34Oz z+y|~i{w*R<(#wv*m=ZtqCrQX zqOH*G>2iLIV=Vv`BeEV&R`VH^caQZdXUutL7GeFwpK@XZQmvL?ftj@aK3cO=%jkHR}&A`tTp=itNOCv zC_@p0$;a&iP0#)L$#@U@;KmK$tcA!nsyt@w@>Qm8GF$HI+@%X;4GpklWn@i-f;2s- zd2omBd4pY4PCOItQf?*f_(Au;S>9I>@S(@Rv#&M?3c%4o0he~5<5tR(l-IEO5y{w;^2T0$E1U10kf#G5|?R8#0YxbmhQjo1V4t8!4 z4sNRM)p$@%r1SMV+#>p)%+J4aT;%m>2^Y)0OpJtJU6`yd0qsL^%cO}dQ_hIv<#7ZB zxb|(15aU7s93k&Dz?f8ouR}jr>LUcF<#CWgEwCd#iL6uK`@#B+G zIv+6^yJ^=5-PNd{yCq8Z1l5LYi5iSl(fP|=m6$26V?Ja|iG6~qh?gAS@o#>l>nh?C&UU}48u8!EYZ#3WauC*z|FSo}TTW*JSyuD10;`Ad8AV73 z_z!G`{_XDJEaRX`3B{+%+N zhumK6o6L`{tT?s+iJG}YW6U^;(W9FTTK($mOrD!w2WRvS4cP$Z?gd+=xNnNdzJO7HUN6gUUsH zKdqbzFpv^>=TKzhtl_rSEG<-5-uPH6$WY3HfRFmtQC{3Mb(~2mU2Ev zb(IqjI6qVV+YFAlMZU4b9)bAVH7R)fa>M{AP5c)s@Im^}WIlj5I*d9Oc~$KOqdcFA@{e|pMmH2Y@`V%?q1cG)z;ea` zcHaF$(X@NS1K0NyT$=0ba`LZ2v3MH)5ieH^`_w4Lr6v)=?cm(_3iX)5GC`S~r0{+D zDRj(<8}eiU?1Uc62Ks(?|Mn6F0B&wHjw!rP+o7=zE(C?`mYYc;|I%$H=vj8bbTJAj zcRKA3C-w@Nqu6-UcppW)9(ONq=*|vcPZo;ElV~d<+ieFSIIN$yixz5kF=OPX@Ic!Z zr?Yhn^S2mwT`DSOVQn0=)5&gAi7P&IA6Id*1M1bx+7b?LLME@V4VGUikiB7`wmCu^ z;sep0l~PpPUfW1*K;NZk{@ZO~desb<9py}s)zZ*5mnBFy@hN6|S@fGTcB$wA82qn8 z?uj*v`Z8TA-6DH0FEan5BlDr3z%{v;>8r+|sTJ&__b>qNQ7E7$cW*GAL~Q|J+WpC@ z(@0+BnuJHi;!RQLODGfztp=*r)E0DpU_OE2JL0Fq9yLH*_Wr?dQ@v*ep@8w1e`EG= z=sg1f01G$w-Qn@e#By}tPW#EQrj!+Q!DM|eq{xH7#=0YGp zI=~-KVf=o1_UyfRRzBjy(b^wx0J1RO1J$Bd~b^0LRA$WH&pI8wydv`6}<+y|MU8wx1r}2)< z`1~rD5ZxGd0MCok@AMKx0mv5b+ujBLr}cG&5NcAu*)^`gui&&Q1V+&X(YM;(eobiNSlvZ-twb*=mtCz5e^vrzB>Xo z;e4O|QOS_?-=P;+hA3~{8EzqULE=rB&xrH!e&~0MWHN`D`kM;qeg8%e_W1a1)#{Ho zMgcGg9*hINrvhs(dq8 z9s6wND&B?DG;2)}1~5<|UsNnVUPx^W|$Yx|8DSlNPAoO2L)(a+#>w`X=? z_LHvxgA<@`&_BpLWN#S#<5a8gbhlA=Km|Mx0qYWooS4EWT6OuZKmQGvuYS-0^q z#>qF@Io^fK)E^)p2arcpUWkcbE`YO4F)&%8jmTe8i6~Ca>x;(qS$X86*uP4|;Ar&b zN%`|-nT*jXCd*+6EdSx!C#GT!&DdbWa;dz5TZ=Wgit;W@o@|2Ni_nI-%Ph3 zPlIPcU83lff{rC5T{$luWX3zdO5p$|M8EN@J(Obay>sC z*0~phtzU}o;VbBy&)Fex^p{ZJHLe#<$U&sHRQ)e!wBKAY+y1gYTTL2p`21kG=+7vM zy(~J)fRCnA=0cN$msM*_aRc>1zlMli3KOvpPo_`*)C^z+U}qr>|)el>BE{hR2XsFE)(FU-r*bDhU=KMR=0o{;RR-S*h}sVLSM zKw<>s^;ydL$2DAY^+#o`)=1?BvZojD@DN{y5mKSsU~t}e!ndOjz|-&ZKY=S_S}wKG1266Rq(}$Y=Sa``4bB)))nVw!qg59gKO-feWcPEq`FY z!Sy)sfduOly!*bdfASZVT5y0GzSC`?eq>fipDSh*f1a6~!5fcnUnFsS-VIj|9NF(o z_}u>Q&)$Ad`rZ9lsH2q6`@@Hc8wPam=i}%9=l}dzEkJja94DMN8Xt_o<1_f5ZScY9 z-4|hzcdO^^c4iI^aNk~tL9ox!@=eT-XwLRy?cmY~%v>hd0u>CW5!E)EF2Dn^XC`P; z{@HoiHAuMv+sH|{D!Ku1z(x02C;+@PZ7*|Zw>BM^>RJf1;4sN_)QgBOb3XHz7 z@8+p;S=TbfdACY2fXh`LTkX_2pG6FKa{b3Ki6MzDf=fUVBoWaKsck>KN07rOrK0hMEH1XVwJ zC+>?-48%{XouK>$3n&D1vK~FclKwv%=6^MeSW_0f$=%>5I_ui4+ibBXFolD z*^DG;K7Tp9eI@ORs7KEKkI(muCFp1>$Lis9yRVkA93uxbhWfp$1L;3s#zHUGL!)}9 z+q*Dy&Um&bJ^V2R>11};%$CN%lj~#}COJ%`z3Mh+NFpM77Sru~2{PaI-Fq3L|0|sz z`9Cb%1E5c`d!rgSo%mb`b!`Xpaa4!#N|@D4D`1o}!bo$;t`*t1eTi1vD!L-^?oAUJ8PVjM>w9Sq8Xl;qL&Gt~%jh`}C;Bbt zQNL5JYL}-40AU^^d3Jtv$&q>dt^L=XMwcLRc!Tdhe&ue*sMsq-7V28ze4)dPXyV5p z1McYfbpK5~{4jEka!=6OG`}&vZSh&u*KqaZGaC@R?hS8nY5ZELV`9tjQGfR&u1;zTsB)n zL8Tl+CuFjoG5J+3O8rVp%#nFr@I_$FmDR6qfLadA%e>5wT)NfO`yqLd-UJmtLV@20 z9pI{LcoUy#i(f1N_2Y#;rn#(Cl5kker6*&9g7gEV-<`j|EGgnIQ@`AtGm^^S)07qD za^aGA?Jgc~8|ilOlKcayo#NxwrJ69-X>{(4V@xNqxxvV2Fh>9n-7$PmhLaY7nQWy$ zss{mCms7`eVft04V38?PF{Mk<8yIfIb&bYe|Hi6SWA6+`_jZQxCo}o<~suc({@6gV`bGr&-|z={I)T%+470iFE0T)Grsp3%qn^6%QI|si{z?(=g`oOh6_l>=mhP{lf2Gzh2%q`e-GyguhA8o%L8TJ&ye*rN^=b9nI`tkM^I?Uf|vfZ#6 zu3ua#)~_F)+WXh@pP!BS?eyvQZ`=KI?LKU7t}KUVuIW3@gV5)1%WhxC?$CACF8C^IP=Q$lOa#VV*ZvV$g1Bz68Ql(;S3Xx0~^m)rcn4} z?bz^8@yFV-YRj_}{U6GBFsZUj0`_;aq2chea(tx1z)=Vg2>m0-!FHpme2W@|JAhy* zxSed(v)MsKnI!RR?gK+rak*S~mzQzfg#BBpu9|%6o+bbgA$WVST6(xL{Y4Pe1|Zs3 zY|}CW2;l%VY&JdJn&qoddEzo|K`F1$AQ+lBSv{(q`D7(}Pu0?}F>9rBO^)8BW@Ey( zL8Qt1bw9~=9i(LqYxn>5`ea;=&(op&z77Z!^8MxF->m4y%dNuy{h{ZP)ZDZz@+gc z0jiFK&X}g_!^5vz<(5jo^;ZR4<;tB9Qn>l0opj4C?$S~clqD)tPvfqftvmtvN^LEE zi@02^Ns=a1=t$31g&dxq_++9_rP`Tv3XkO$=j2XpnnVFwwWO}Be+Epfj=%)Z`G#RZ@%VkLk|9d}^GU)i_j3fdFb2Xx zg4FQ-jo?dunG6rl9dZAN5Xhf}@G?a|%V0Lb^>~vZ0?%@Fzyy`XXL2|i(@LVATlF#M zU#y2un>Q`L&Eez063LfC@VP?fwn8+a=7r+A zba|YbC?ZMDtcpy+z@ciq9^43<7Iy_%Kak$w0IR(4{GtEaLe-xDr|OsV@>X3UAqe+C zTfI&!4pQxxT*COd}57UfKgJ+dcu>s2fp&!Vr0x+!V)?amU6hhGYQzBnxaDm8)$)f0?

ci&`|g1 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 z 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%0DBFuCp*Z;Aom>`3fa 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

!UR#+ea2`F5(DJ8TzZD_Mi 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�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

AUn_y9m}H7Lhpj%F_=KY7OP204xRPa^C!e}8 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�h8PL2 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

`-iWa%DcV0 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

}Ejp6#_Z}lg%m< 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ȼyvk!N+YRe4$+5+s+r<{j1sI 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

f7dU6!OqRWL6FoAn5KYvPnM)V~!w5V{ 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�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 T_9VvAC-Kn8MIc8OkN8CBY(Sv^P09I~t!4zx?Ar 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 z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI3RDVI z3RDVI3RDVI3RDVI3RDVI3jE9z=xlB_w>H+cHa5048k?J~R&%Yj-PqXOeAH^KwKvz- zwzf7K8=KALcJpT*X?^`qL4nQ9t&6u-)cA4n$1pgbz^(8(OFsFXttUg8_mWBt>0W1;Gso0wiuAGd-3=2~lGrM0!XxxTT!-fFJ=%p>IX>+3UrW(sUJHfegR+2H!GQF6NO=gr2}8qDVf zG!p>?3!3Xc^GNIKe+mlVG>g9~$iw3H>IUoY-}Q~nwRK{UA4Ld{o2!k-ji2K6^_f32 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 literal 0 HcmV?d00001 diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala index dc3f6b58e..8a8f9959b 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala @@ -21,49 +21,49 @@ trait RST_FilterBehaviors extends QueryTest { val rastersInMemory = spark.read .format("gdal") .option("raster_storage", "in-memory") - .load("src/test/resources/modis/MCD43A4.A2018185.h10v07.006.2018194033728_B01.TIF") + .load("src/test/resources/binary/geotiff-small/chicago_sp27.tif") val gridTiles = rastersInMemory .withColumn("result", rst_filter($"tile", 3, "mode")) .select("result") .collect() - gridTiles.length should be(1) //7 + gridTiles.length should be(1) val gridTiles2 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("mode"))) .select("result") .collect() - gridTiles2.length should be(1) //7 + gridTiles2.length should be(1) val gridTiles3 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("avg"))) .select("result") .collect() - gridTiles3.length should be(1) //7 + gridTiles3.length should be(1) val gridTiles4 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("min"))) .select("result") .collect() - gridTiles4.length should be(1) //7 + gridTiles4.length should be(1) val gridTiles5 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("max"))) .select("result") .collect() - gridTiles5.length should be(1) //7 + gridTiles5.length should be(1) val gridTiles6 = rastersInMemory .withColumn("result", rst_filter($"tile", lit(3), lit("median"))) .select("result") .collect() - gridTiles6.length should be(1) //7 + gridTiles6.length should be(1) rastersInMemory.createOrReplaceTempView("source") From 7ccb8d839f7d6ad39709b6a5a01b8644de238d40 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 6 May 2024 10:10:43 -0400 Subject: [PATCH 07/38] merged codecov change, optional local build tweaks, reorder a test --- .gitignore | 1 + CHANGELOG.md | 2 +- pom.xml | 55 ++++++++++++++++++- scripts/m2/mvn_init.sh | 47 ++++++++++++++++ scripts/m2/settings.xml | 12 ++++ scripts/mosaic-docker.sh | 16 +++--- .../mosaic/core/raster/TestRasterGDAL.scala | 10 ++-- 7 files changed, 129 insertions(+), 14 deletions(-) create mode 100755 scripts/m2/mvn_init.sh create mode 100644 scripts/m2/settings.xml diff --git a/.gitignore b/.gitignore index f8fec79c4..b0dc27a26 100644 --- a/.gitignore +++ b/.gitignore @@ -160,3 +160,4 @@ spark-warehouse .Rproj.user docker/.m2/ /python/notebooks/ +/scripts/m2/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 222858bfe..5b6724eb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ## v0.4.2 [DBR 13.3 LTS] -- Fixed 'raster_to_grid' reader tessellation issue with multiple bands. +- Fixed 'raster_to_grid' reader tessellation issue with multiple bands; also adding repartitioning for better performance. - Expanded support for fuse-based checkpointing (persisted raster storage), managed through: - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. - python: `mos.enable_gdal(spark, with_checkpoint_path=path)`. diff --git a/pom.xml b/pom.xml index 8d4a8abf7..5726b20e9 100644 --- a/pom.xml +++ b/pom.xml @@ -120,7 +120,6 @@ gdal 3.4.0 - @@ -281,6 +280,60 @@ 0.4.2 + + + skipScoverage + + 2.12.10 + 2.12 + 3.4.0 + 0.4.2 + 1.8 + 1.8 + + + + + org.scoverage + scoverage-maven-plugin + 2.0.2 + + + scoverage-report + package + + check + report-only + + + + + ${minimum.coverage} + false + ${scala.version} + skipTests=false + + + + org.scalatest + scalatest-maven-plugin + 2.0.0 + + ${project.build.directory}/test-reports + false + + + + test + + test + + + + + + + diff --git a/scripts/m2/mvn_init.sh b/scripts/m2/mvn_init.sh new file mode 100755 index 000000000..578588ce1 --- /dev/null +++ b/scripts/m2/mvn_init.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# [1] unset variable for this script +echo -e "\n::: [1] ... unsetting JAVA_TOOL_OPTIONS (probably need to do in container as well) :::" +unset JAVA_TOOL_OPTIONS + +# [2] copy custom settings.xml +# - defaults to new skipScoverage profile +# - compliments the pom config (profile sCoverage also added there) +# - sets .m2 folder to be in project +echo -e "\n::: [2] ... setting up new .m2 (in project) + new skipScoverage profile (as default) :::" +mv /usr/local/share/maven/conf/settings.xml /usr/local/share/maven/conf/settings.xml.BAK +cp /root/mosaic/scripts/m2/settings.xml /usr/local/share/maven/conf +echo -e " ... mvn active profile(s)\n" +cd /root/mosaic && mvn help:active-profiles + +# [3] build JVM code +# this is building for container JDK +# see settings.xml for overrides +echo -e "\n::: [3] ... build JVM code version? :::\n" +echo -e " $(javac -version)" +cd /root/mosaic && mvn clean package -DskipTests + +# [4] build python +echo -e "\n::: [4] ... build python :::\n" +pip install --upgrade pip +cd /root/mosaic/python && pip install . +pip install black build isort py4j requests + +# [5] run gdal install script +# - this is adapted from 0.4.2/mosaic-gdal-init.sh +echo -e "\n::: [5] ... setup gdal :::\n" + +# refresh package info +apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-backports main universe multiverse restricted" +apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-updates main universe multiverse restricted" +apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-security main multiverse restricted universe" +apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main multiverse restricted universe" +apt-get update -y + +# install natives +# - gdal natives already installed +apt-get -o DPkg::Lock::Timeout=-1 install -y python3-numpy unixodbc libcurl3-gnutls libsnappy-dev libopenjp2-7 + +# pip install gdal +# - match the container version (jammy default) +pip install gdal==3.4.1 diff --git a/scripts/m2/settings.xml b/scripts/m2/settings.xml new file mode 100644 index 000000000..224b5efc7 --- /dev/null +++ b/scripts/m2/settings.xml @@ -0,0 +1,12 @@ + + + /root/mosaic/scripts/m2 + + skipScoverage + + \ No newline at end of file diff --git a/scripts/mosaic-docker.sh b/scripts/mosaic-docker.sh index 6a508eb37..573f797f0 100644 --- a/scripts/mosaic-docker.sh +++ b/scripts/mosaic-docker.sh @@ -1,13 +1,15 @@ # [1] checkout https://github.com/r3stl355/mosaic-docker # - you need to first build the image (under mosaic-docker repo) for Mosaic 0.4 series: -# `GDAL_VERSION=3.4.1 OPENJDK_VERSION=11 LIBPROJ_VERSION=7.1.0 SPARK_VERSION=3.4.0 CORES=4 ./build` -# - produces image 'jdk11-gdal3.4.1-spark3.4' +# `GDAL_VERSION=3.4.1 LIBPROJ_VERSION=7.1.0 SPARK_VERSION=3.4.0 CORES=4 ./build` +# - produces image 'ubuntu22-gdal3.4.1-spark3.4.0' [default is JDK 8] # [2] run this in root of (mosaic repo), e.g. `sh scripts/mosaic-docker.sh` # - for IDE driven or Jupyter notebook testing # [3] if you want to run tests within the container shell -# - [a] in pom - comment out scoverage (scala coverage) and add false to scalatest -# - [b] after launch run `mvn -DskipTests package` from the container and `pip install .` from python -# - [c] after launch type `unset JAVA_TOOL_OPTIONS` from the container -# - [d] then can test e.g. `mvn test -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and +# - [a] after launch type `unset JAVA_TOOL_OPTIONS` from the container +# - [b] then can test e.g. `mvn -X test -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and # `python3 -m unittest mosaic test/test_fuse_install.py` from python -docker run --platform linux/amd64 --name mosaic-dev --rm -p 5005:5005 -p 8888:8888 -v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" -it mosaic-dev:ubuntu22-gdal3.4.1-spark3.4.0 /bin/bash \ No newline at end of file +# ... don't need to specify -PskipCoverage (see settings.xml) +docker run --platform linux/amd64 --name mosaic-dev --rm -p 5005:5005 -p 8888:8888 \ +-v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" \ +-it mosaic-dev:ubuntu22-gdal3.4.1-spark3.4.0 /bin/bash -c \ +"/root/mosaic/scripts/m2/mvn_init.sh && cd /root/mosaic && /bin/bash" diff --git a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala index ece897b65..4ac134f81 100644 --- a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala +++ b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala @@ -14,11 +14,6 @@ import scala.util.Try class TestRasterGDAL extends SharedSparkSessionGDAL { - test("Verify that checkpoint is not used.") { - spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" - MosaicGDAL.isUseCheckpoint() shouldBe false - } - test("Verify that GDAL is enabled.") { assume(System.getProperty("os.name") == "Linux") @@ -38,6 +33,11 @@ class TestRasterGDAL extends SharedSparkSessionGDAL { resultExecutors.foreach(s => s should include("GDAL")) } + test("Verify that checkpoint is not used.") { + spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" + MosaicGDAL.isUseCheckpoint() shouldBe false + } + test("Read raster metadata from GeoTIFF file.") { assume(System.getProperty("os.name") == "Linux") From dec0a94494d352bf32e378eae2bb3d2a40ef8c6a Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 6 May 2024 12:45:02 -0400 Subject: [PATCH 08/38] Appended './0.4.2' to default fuse path, updating checkpoint fields after enableGDAL. --- python/mosaic/api/gdal.py | 4 ++-- .../scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 63c446395..ca7af5fc9 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -7,7 +7,7 @@ def setup_gdal( - to_fuse_dir: str = "/Workspace/Shared/geospatial/mosaic/gdal/jammy", + to_fuse_dir: str = "/Workspace/Shared/geospatial/mosaic/gdal/jammy/0.4.2", script_out_name: str = "mosaic-gdal-init.sh", jni_so_copy: bool = False, test_mode: bool = False @@ -28,7 +28,7 @@ def setup_gdal( ---------- to_fuse_dir : str Path to write out the init script for GDAL installation; - default is '/Workspace/Shared/geospatial/mosaic/gdal/jammy'. + default is '/Workspace/Shared/geospatial/mosaic/gdal/jammy/0.4.2'. script_out_name : str name of the script to be written; default is 'mosaic-gdal-init.sh'. diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index df6de3494..a3f3c3c62 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -137,14 +137,13 @@ object MosaicGDAL extends Logging { dir.mkdirs } } + // [a] enable gdal from configs first + enableGDAL(spark) - // enable checkpoint + // [b] override checkpoint config afterwards checkpointPath = withCheckpointPath useCheckpoint = true logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides spark confs).") - - // enable gdal - enableGDAL(spark) } From ee8782e3028f3ab3e12b2cd3b867a3659c465d71 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 6 May 2024 15:49:57 -0400 Subject: [PATCH 09/38] spark configs set for checkpoint. --- .../labs/mosaic/core/raster/api/GDAL.scala | 2 +- .../core/types/model/MosaicRasterTile.scala | 4 +-- .../functions/MosaicExpressionConfig.scala | 2 +- .../labs/mosaic/gdal/MosaicGDAL.scala | 25 +++++++++++++------ .../mosaic/core/raster/TestRasterGDAL.scala | 6 ++--- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index 94d03fa8f..a07cdc24d 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -127,7 +127,7 @@ object GDAL { case StringType => val uuid = UUID.randomUUID().toString val extension = GDAL.getExtension(raster.getDriversShortName) - val writePath = s"${MosaicGDAL.getCheckpointPath()}/$uuid.$extension" + val writePath = s"${MosaicGDAL.getCheckpointPath}/$uuid.$extension" val outPath = raster.writeToPath(writePath) RasterCleaner.dispose(raster) UTF8String.fromString(outPath) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 6f5811276..de0d487a7 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -108,10 +108,10 @@ case class MosaicRasterTile( // 0.4.2 - override rasterDataType if checkpoint var rasterDT = rasterDataType - if (MosaicGDAL.isUseCheckpoint() && rasterDataType != StringType) { + if (MosaicGDAL.isUseCheckpoint && rasterDataType != StringType) { rasterDT = StringType } - val encodedRaster = encodeRaster(rasterDT) + val encodedRaster = encodeRaster(rasterDataType=rasterDT) val path = if (rasterDT == StringType) encodedRaster.toString else raster.createInfo("path") val parentPath = if (raster.createInfo("parentPath").isEmpty) raster.createInfo("path") else raster.createInfo("parentPath") diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala index 3de8f8f37..fd76a9b49 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala @@ -87,9 +87,9 @@ object MosaicExpressionConfig { .setGeometryAPI(spark.conf.get(MOSAIC_GEOMETRY_API, JTS.name)) .setIndexSystem(spark.conf.get(MOSAIC_INDEX_SYSTEM, H3.name)) .setRasterCheckpoint(spark.conf.get(MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_CHECKPOINT_DEFAULT)) + .setRasterUseCheckpoint(spark.conf.get(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT)) .setTmpPrefix(spark.conf.get(MOSAIC_RASTER_TMP_PREFIX, "/tmp")) .setGDALConf(spark.conf) - } } diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index a3f3c3c62..f0bb3e5e2 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -1,6 +1,6 @@ package com.databricks.labs.mosaic.gdal -import com.databricks.labs.mosaic.{MOSAIC_RASTER_BLOCKSIZE_DEFAULT, MOSAIC_TEST_MODE} +import com.databricks.labs.mosaic.{MOSAIC_RASTER_BLOCKSIZE_DEFAULT, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_TEST_MODE} import com.databricks.labs.mosaic.functions.{MosaicContext, MosaicExpressionConfig} import com.databricks.labs.mosaic.utils.PathUtils import org.apache.spark.internal.Logging @@ -109,8 +109,8 @@ object MosaicGDAL extends Logging { * - alternative to setting spark configs prior to init. * - can be called multiple times in a session as you want to change * checkpoint location. - * - sets [[MosaicExpressionConfig.setRasterCheckpoint]] to provided path. - * - sets [[MosaicExpressionConfig.setRasterUseCheckpoint]] to "true". + * - sets [[checkpointPath]] to provided path. + * - sets [[useCheckpoint]] to "true". * @param spark * spark session to use. * @param withCheckpointPath @@ -137,10 +137,17 @@ object MosaicGDAL extends Logging { dir.mkdirs } } - // [a] enable gdal from configs first + // [a] set spark configs for checkpoint + // - will make sure the session is consistent with these settings. + spark.conf.set(MOSAIC_RASTER_CHECKPOINT, withCheckpointPath) + spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, "true") + + // [b] enable gdal from configs first + // - will be a noop if previously enabled. enableGDAL(spark) - // [b] override checkpoint config afterwards + // [c] override checkpoint config afterwards + // - when GDAL was previously enabled. checkpointPath = withCheckpointPath useCheckpoint = true logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides spark confs).") @@ -172,10 +179,14 @@ object MosaicGDAL extends Logging { } /** @return value of useCheckpoint. */ - def isUseCheckpoint(): Boolean = this.useCheckpoint + def isUseCheckpoint: Boolean = { + this.useCheckpoint + } /** return value of checkpointPath. */ - def getCheckpointPath(): String = this.checkpointPath + def getCheckpointPath: String = { + this.checkpointPath + } // /** Reads the resource bytes. */ // private def readResourceBytes(name: String): Array[Byte] = { diff --git a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala index 4ac134f81..05c4e7504 100644 --- a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala +++ b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala @@ -35,7 +35,7 @@ class TestRasterGDAL extends SharedSparkSessionGDAL { test("Verify that checkpoint is not used.") { spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" - MosaicGDAL.isUseCheckpoint() shouldBe false + MosaicGDAL.isUseCheckpoint shouldBe false } test("Read raster metadata from GeoTIFF file.") { @@ -347,8 +347,8 @@ class TestRasterGDAL extends SharedSparkSessionGDAL { test("Verify that checkpoint is configured.") { MosaicGDAL.enableGDALWithCheckpoint(spark, spark.conf.get(MOSAIC_RASTER_CHECKPOINT)) spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" - MosaicGDAL.isUseCheckpoint() shouldBe true - MosaicGDAL.getCheckpointPath() shouldBe spark.conf.get(MOSAIC_RASTER_CHECKPOINT) + MosaicGDAL.isUseCheckpoint shouldBe true + MosaicGDAL.getCheckpointPath shouldBe spark.conf.get(MOSAIC_RASTER_CHECKPOINT) } } From ee89699ef513b93f9c98600f7e276f4c9be620cd Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 7 May 2024 19:17:00 -0400 Subject: [PATCH 10/38] adjusted local build, refreshing expression configs for checkpoint --- pom.xml | 66 ++++--------------- python/mosaic/api/gdal.py | 24 +------ python/mosaic/core/mosaic_context.py | 12 ++-- scripts/m2/mvn_init.sh | 2 +- scripts/mosaic-docker.sh | 2 +- .../labs/mosaic/core/raster/api/GDAL.scala | 12 +++- .../core/types/model/MosaicRasterTile.scala | 15 +++-- .../labs/mosaic/functions/MosaicContext.scala | 1 + .../functions/MosaicExpressionConfig.scala | 10 +++ .../labs/mosaic/gdal/MosaicGDAL.scala | 65 +++++++++--------- .../mosaic/core/raster/TestRasterGDAL.scala | 3 +- .../sql/test/SharedSparkSessionGDAL.scala | 3 +- 12 files changed, 89 insertions(+), 126 deletions(-) diff --git a/pom.xml b/pom.xml index 5726b20e9..899db797c 100644 --- a/pom.xml +++ b/pom.xml @@ -145,27 +145,6 @@ - - org.scoverage - scoverage-maven-plugin - 2.0.2 - - - scoverage-report - package - - check - report-only - - - - - ${minimum.coverage} - true - ${scala.version} - skipTests=false - - net.alchim31.maven @@ -279,18 +258,6 @@ 3.4.0 0.4.2 - - - - skipScoverage - - 2.12.10 - 2.12 - 3.4.0 - 0.4.2 - 1.8 - 1.8 - @@ -307,33 +274,28 @@ - + ${minimum.coverage} - false + true ${scala.version} skipTests=false - - org.scalatest - scalatest-maven-plugin - 2.0.0 - - ${project.build.directory}/test-reports - false - - - - test - - test - - - - + + + skipScoverage + + 2.12.10 + 2.12 + 3.4.0 + 0.4.2 + 1.8 + 1.8 + + diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index ca7af5fc9..e2f6bb1a7 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -95,36 +95,16 @@ def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: def is_use_checkpoint(spark: SparkSession) -> bool: - """ - Parameters - ---------- - spark : pyspark.sql.SparkSession - The active spark session. - - Returns - ------- - Whether MosaicGDAL is configured to use checkpoint. - """ sc = spark.sparkContext mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - return mosaicGDALObject.isUseCheckpoint() + return getattr(mosaicGDALObject, "isUseCheckpoint") def get_checkpoint_path(spark: SparkSession) -> str: - """ - Parameters - ---------- - spark : pyspark.sql.SparkSession - The active spark session. - - Returns - ------- - MosaicGDAL checkpoint path, default is from spark conf. - """ sc = spark.sparkContext mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - return mosaicGDALObject.getCheckpointPath() + return getattr(mosaicGDALObject, "getCheckpointPath") diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index b8b05ba27..96854130b 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -65,14 +65,12 @@ def geometry_api(self): def index_system(self): return self._index_system + @property + def _jmosaicContext(self): + return self._context + def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): if with_checkpoint_path: return self._mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) else: - return self._mosaicGDALObject.enableGDAL(spark._jsparkSession) - - def is_use_checkpoint(self): - return self._mosaicGDALObject.isUseCheckpoint() - - def get_checkpoint_path(self): - return self._mosaicGDALObject.getCheckpointPath() + return self._mosaicGDALObject.enableGDAL(spark._jsparkSession) \ No newline at end of file diff --git a/scripts/m2/mvn_init.sh b/scripts/m2/mvn_init.sh index 578588ce1..5c172a124 100755 --- a/scripts/m2/mvn_init.sh +++ b/scripts/m2/mvn_init.sh @@ -19,7 +19,7 @@ cd /root/mosaic && mvn help:active-profiles # see settings.xml for overrides echo -e "\n::: [3] ... build JVM code version? :::\n" echo -e " $(javac -version)" -cd /root/mosaic && mvn clean package -DskipTests +cd /root/mosaic && mvn package -DskipTests # [4] build python echo -e "\n::: [4] ... build python :::\n" diff --git a/scripts/mosaic-docker.sh b/scripts/mosaic-docker.sh index 573f797f0..9cc4ec7dd 100644 --- a/scripts/mosaic-docker.sh +++ b/scripts/mosaic-docker.sh @@ -6,7 +6,7 @@ # - for IDE driven or Jupyter notebook testing # [3] if you want to run tests within the container shell # - [a] after launch type `unset JAVA_TOOL_OPTIONS` from the container -# - [b] then can test e.g. `mvn -X test -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and +# - [b] then can test e.g. `mvn -X test -DskipTests=false -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and # `python3 -m unittest mosaic test/test_fuse_install.py` from python # ... don't need to specify -PskipCoverage (see settings.xml) docker run --platform linux/amd64 --name mosaic-dev --rm -p 5005:5005 -p 8888:8888 \ diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index a07cdc24d..ff8b9ae40 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -50,6 +50,16 @@ object GDAL { /** @return Returns the name of the raster API. */ def name: String = "GDAL" + /** @return Returns whether using checkpoint (assumes `enable` called) */ + def isUseCheckpoint: Boolean = { + MosaicGDAL.isUseCheckpoint + } + + /** @return Returns checkpoint path (assumes `enable` called) */ + def getCheckpointPath: String = { + MosaicGDAL.getCheckpointPath + } + def enable(spark: SparkSession): Unit = { val mosaicConfig = MosaicExpressionConfig(spark) enable(mosaicConfig) @@ -127,7 +137,7 @@ object GDAL { case StringType => val uuid = UUID.randomUUID().toString val extension = GDAL.getExtension(raster.getDriversShortName) - val writePath = s"${MosaicGDAL.getCheckpointPath}/$uuid.$extension" + val writePath = s"${getCheckpointPath}/$uuid.$extension" val outPath = raster.writeToPath(writePath) RasterCleaner.dispose(raster) UTF8String.fromString(outPath) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index de0d487a7..c9225eceb 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -111,10 +111,16 @@ case class MosaicRasterTile( if (MosaicGDAL.isUseCheckpoint && rasterDataType != StringType) { rasterDT = StringType } - val encodedRaster = encodeRaster(rasterDataType=rasterDT) + val encodedRaster = encodeRaster(rasterDT) - val path = if (rasterDT == StringType) encodedRaster.toString else raster.createInfo("path") - val parentPath = if (raster.createInfo("parentPath").isEmpty) raster.createInfo("path") else raster.createInfo("parentPath") + val path = encodedRaster match { + case string: UTF8String => string.toString + case _ => raster.createInfo("path") + } + val parentPath = { + if (raster.createInfo("parentPath").isEmpty) raster.createInfo("path") + else raster.createInfo("parentPath") + } val newCreateInfo = raster.createInfo + ("path" -> path, "parentPath" -> parentPath) val mapData = buildMapString(newCreateInfo) if (Option(index).isDefined) { @@ -129,7 +135,6 @@ case class MosaicRasterTile( } else { InternalRow.fromSeq(Seq(null, encodedRaster, mapData)) } - } /** @@ -141,7 +146,7 @@ case class MosaicRasterTile( * According to the [[DataType]]. */ private def encodeRaster( - rasterDataType: DataType = BinaryType + rasterDataType: DataType ): Any = { GDAL.writeRasters(Seq(raster), rasterDataType).head } diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala index 8a1075a76..8791709f1 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala @@ -103,6 +103,7 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends ): Unit = { val registry = spark.sessionState.functionRegistry val mosaicRegistry = MosaicRegistry(registry, database) + expressionConfig.updateSparkConf() // any changes? /** IndexSystem and GeometryAPI Agnostic methods */ registry.registerFunction( diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala index fd76a9b49..7d7bd33d0 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala @@ -17,9 +17,19 @@ import org.apache.spark.sql.{RuntimeConfig, SparkSession} case class MosaicExpressionConfig(configs: Map[String, String]) { def updateSparkConf(): Unit = { + // populate initial set configs val spark = SparkSession.builder().getOrCreate() val sparkConf = spark.sparkContext.getConf configs.foreach { case (k, v) => sparkConf.set(k, v) } + + // update defaults as well + this + .setGeometryAPI(spark.conf.get(MOSAIC_GEOMETRY_API, JTS.name)) + .setIndexSystem(spark.conf.get(MOSAIC_INDEX_SYSTEM, H3.name)) + .setRasterCheckpoint(spark.conf.get(MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_CHECKPOINT_DEFAULT)) + .setRasterUseCheckpoint(spark.conf.get(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT)) + .setTmpPrefix(spark.conf.get(MOSAIC_RASTER_TMP_PREFIX, "/tmp")) + .setGDALConf(spark.conf) } def getGDALConf: Map[String, String] = { diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index f0bb3e5e2..d8f8dccf2 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -62,9 +62,13 @@ object MosaicGDAL extends Logging { gdal.SetConfigOption("GDAL_NUM_THREADS", "ALL_CPUS") mosaicConfig.getGDALConf.foreach { case (k, v) => gdal.SetConfigOption(k.split("\\.").last, v) } setBlockSize(mosaicConfig) - checkpointPath = mosaicConfig.getRasterCheckpoint - useCheckpoint = { - Try(mosaicConfig.getRasterUseCheckpoint.asInstanceOf[Boolean]).getOrElse(false) + configureCheckpoint(mosaicConfig) + } + + def configureCheckpoint(mosaicConfig: MosaicExpressionConfig): Unit = { + this.checkpointPath = mosaicConfig.getRasterCheckpoint + this.useCheckpoint = { + Try(mosaicConfig.getRasterUseCheckpoint == "true").getOrElse(false) } } @@ -83,11 +87,13 @@ object MosaicGDAL extends Logging { /** Enables the GDAL environment. */ def enableGDAL(spark: SparkSession): Unit = { + // refresh configs in case spark had changes + val expressionConfig = MosaicExpressionConfig(spark) + if (!wasEnabled(spark) && !isEnabled) { Try { isEnabled = true loadSharedObjects() - val expressionConfig = MosaicExpressionConfig(spark) configureGDAL(expressionConfig) gdal.AllRegister() spark.conf.set(GDAL_ENABLED, "true") @@ -101,6 +107,8 @@ object MosaicGDAL extends Logging { isEnabled = false throw exception } + } else { + configureCheckpoint(expressionConfig) } } @@ -117,7 +125,8 @@ object MosaicGDAL extends Logging { * path to set. */ def enableGDALWithCheckpoint(spark: SparkSession, withCheckpointPath: String): Unit = { - // do some checks + // [a] initial checks + // - will make dirs if conditions met val isTestMode = spark.conf.get(MOSAIC_TEST_MODE, "false").toBoolean if (withCheckpointPath == null) { val msg = "Null checkpoint path provided." @@ -137,23 +146,28 @@ object MosaicGDAL extends Logging { dir.mkdirs } } - // [a] set spark configs for checkpoint + + // [b] set spark configs for checkpoint // - will make sure the session is consistent with these settings. spark.conf.set(MOSAIC_RASTER_CHECKPOINT, withCheckpointPath) spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, "true") - // [b] enable gdal from configs first - // - will be a noop if previously enabled. + // [c] enable gdal from configs enableGDAL(spark) + logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") - // [c] override checkpoint config afterwards - // - when GDAL was previously enabled. - checkpointPath = withCheckpointPath - useCheckpoint = true - logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides spark confs).") + // [d] register functions again + // - will pick up the config changes. + // - In some (not all) testing, MosaicContext + // might not have been built. + try { + MosaicContext.context().register(spark) + logInfo("Re-registered expressions in MosaicContext.") + } catch { + case t: Throwable => logWarning("Unable to re-register expressions with MosaicContext (is it initialized?)") + } } - /** Loads the shared objects required for GDAL. */ private def loadSharedObjects(): Unit = { loadOrNOOP(usrlibsoPath) @@ -179,28 +193,9 @@ object MosaicGDAL extends Logging { } /** @return value of useCheckpoint. */ - def isUseCheckpoint: Boolean = { - this.useCheckpoint - } + def isUseCheckpoint: Boolean = this.useCheckpoint /** return value of checkpointPath. */ - def getCheckpointPath: String = { - this.checkpointPath - } - -// /** Reads the resource bytes. */ -// private def readResourceBytes(name: String): Array[Byte] = { -// val bis = new BufferedInputStream(getClass.getResourceAsStream(name)) -// try { Stream.continually(bis.read()).takeWhile(-1 !=).map(_.toByte).toArray } -// finally bis.close() -// } - -// /** Reads the resource lines. */ -// // noinspection SameParameterValue -// private def readResourceLines(name: String): Array[String] = { -// val bytes = readResourceBytes(name) -// val lines = new String(bytes).split("\n") -// lines -// } + def getCheckpointPath: String = this.checkpointPath } diff --git a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala index 05c4e7504..40124029a 100644 --- a/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala +++ b/src/test/scala/com/databricks/labs/mosaic/core/raster/TestRasterGDAL.scala @@ -1,6 +1,6 @@ package com.databricks.labs.mosaic.core.raster -import com.databricks.labs.mosaic.{MOSAIC_RASTER_CHECKPOINT, MOSAIC_TEST_MODE} +import com.databricks.labs.mosaic.{MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_TEST_MODE} import com.databricks.labs.mosaic.core.raster.gdal.MosaicRasterGDAL import com.databricks.labs.mosaic.gdal.MosaicGDAL import com.databricks.labs.mosaic.test.mocks.filePath @@ -349,6 +349,7 @@ class TestRasterGDAL extends SharedSparkSessionGDAL { spark.conf.get(MOSAIC_TEST_MODE) shouldBe "true" MosaicGDAL.isUseCheckpoint shouldBe true MosaicGDAL.getCheckpointPath shouldBe spark.conf.get(MOSAIC_RASTER_CHECKPOINT) + spark.conf.get(MOSAIC_RASTER_USE_CHECKPOINT) shouldBe "true" } } diff --git a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala index 58270413c..95f71978f 100644 --- a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala +++ b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala @@ -2,7 +2,7 @@ package org.apache.spark.sql.test import com.databricks.labs.mosaic.gdal.MosaicGDAL import com.databricks.labs.mosaic.utils.FileUtils -import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_TEST_MODE} +import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT, MOSAIC_TEST_MODE} import org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession import org.gdal.gdal.gdal @@ -32,6 +32,7 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { override def beforeEach(): Unit = { super.beforeEach() + sparkConf.set(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT) MosaicGDAL.enableGDAL(this.spark) gdal.AllRegister() } From 6159d60093fb7922ac7e873c7d2a55de880e7280 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 7 May 2024 22:01:12 -0400 Subject: [PATCH 11/38] checkpoint accessors, deserialize handling. --- python/mosaic/api/gdal.py | 4 ++-- .../mosaic/core/types/model/MosaicRasterTile.scala | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index e2f6bb1a7..426a01831 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -99,7 +99,7 @@ def is_use_checkpoint(spark: SparkSession) -> bool: mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - return getattr(mosaicGDALObject, "isUseCheckpoint") + return mosaicGDALObject.isUseCheckpoint() def get_checkpoint_path(spark: SparkSession) -> str: @@ -107,4 +107,4 @@ def get_checkpoint_path(spark: SparkSession) -> str: mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - return getattr(mosaicGDALObject, "getCheckpointPath") + return mosaicGDALObject.getCheckpointPath() diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index c9225eceb..7a528faaa 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -176,7 +176,15 @@ object MosaicRasterTile { val index = row.get(0, idDataType) val rawRaster = row.get(1, rasterType) val createInfo = extractMap(row.getMap(2)) - val raster = GDAL.readRaster(rawRaster, createInfo, rasterType) + + // handling due to checkpointing + val rasterDT: DataType = rawRaster match { + case _: UTF8String if rawRaster == BinaryType => StringType + case _: Array[Byte] if rawRaster == StringType => BinaryType + case _ => rasterType + } + + val raster = GDAL.readRaster(rawRaster, createInfo, rasterDT) // noinspection TypeCheckCanBeMatch if (Option(index).isDefined) { if (index.isInstanceOf[Long]) { From a718021a6cc94bc1deb0c3bae3bed14e85d092e2 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 8 May 2024 09:29:45 -0400 Subject: [PATCH 12/38] deserialize checking --- .../core/types/model/MosaicRasterTile.scala | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 7a528faaa..d7ef373da 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -102,17 +102,15 @@ case class MosaicRasterTile( * @return * An instance of [[InternalRow]]. */ - def serialize( - rasterDataType: DataType - ): InternalRow = { + def serialize(rasterDataType: DataType): InternalRow = { // 0.4.2 - override rasterDataType if checkpoint - var rasterDT = rasterDataType - if (MosaicGDAL.isUseCheckpoint && rasterDataType != StringType) { - rasterDT = StringType + val rasterDT: DataType = rasterDataType match { + case _: BinaryType if MosaicGDAL.isUseCheckpoint => StringType + case _ => rasterDataType } - val encodedRaster = encodeRaster(rasterDT) + val encodedRaster = encodeRaster(rasterDT) val path = encodedRaster match { case string: UTF8String => string.toString case _ => raster.createInfo("path") @@ -174,13 +172,13 @@ object MosaicRasterTile { */ def deserialize(row: InternalRow, idDataType: DataType, rasterType: DataType): MosaicRasterTile = { val index = row.get(0, idDataType) - val rawRaster = row.get(1, rasterType) + val rawRaster = Try(row.getBinary(1)).getOrElse(row.getUTF8String(1)) val createInfo = extractMap(row.getMap(2)) // handling due to checkpointing val rasterDT: DataType = rawRaster match { - case _: UTF8String if rawRaster == BinaryType => StringType - case _: Array[Byte] if rawRaster == StringType => BinaryType + case _: UTF8String if rasterType == BinaryType => StringType + case _: Array[Byte] if rasterType == StringType => BinaryType case _ => rasterType } From 67cc869cb990fd7fc41eb5881067e4c77a4afa81 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 8 May 2024 10:59:48 -0400 Subject: [PATCH 13/38] revert deserialize checking --- .../mosaic/core/types/model/MosaicRasterTile.scala | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index d7ef373da..52f235822 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -170,19 +170,12 @@ object MosaicRasterTile { * @return * An instance of [[MosaicRasterTile]]. */ - def deserialize(row: InternalRow, idDataType: DataType, rasterType: DataType): MosaicRasterTile = { + def deserialize(row: InternalRow, idDataType: DataType, rasterDataType: DataType): MosaicRasterTile = { val index = row.get(0, idDataType) - val rawRaster = Try(row.getBinary(1)).getOrElse(row.getUTF8String(1)) + val rawRaster = row.get(1, rasterDataType) val createInfo = extractMap(row.getMap(2)) - // handling due to checkpointing - val rasterDT: DataType = rawRaster match { - case _: UTF8String if rasterType == BinaryType => StringType - case _: Array[Byte] if rasterType == StringType => BinaryType - case _ => rasterType - } - - val raster = GDAL.readRaster(rawRaster, createInfo, rasterDT) + val raster = GDAL.readRaster(rawRaster, createInfo, rasterDataType) // noinspection TypeCheckCanBeMatch if (Option(index).isDefined) { if (index.isInstanceOf[Long]) { From 6992e905eebe830eea3323a3a43aad9e3f7ac28a Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 8 May 2024 13:11:03 -0400 Subject: [PATCH 14/38] fallback to path on raster ClassCastException --- .../labs/mosaic/core/raster/api/GDAL.scala | 25 +++++++++++-------- .../core/types/model/MosaicRasterTile.scala | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index ff8b9ae40..6c04c2c7f 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -103,16 +103,21 @@ object GDAL { case StringType => MosaicRasterGDAL.readRaster(createInfo) case BinaryType => - val bytes = inputRaster.asInstanceOf[Array[Byte]] - val raster = MosaicRasterGDAL.readRaster(bytes, createInfo) - // If the raster is coming as a byte array, we can't check for zip condition. - // We first try to read the raster directly, if it fails, we read it as a zip. - if (raster == null) { - val parentPath = createInfo("parentPath") - val zippedPath = s"/vsizip/$parentPath" - MosaicRasterGDAL.readRaster(bytes, createInfo + ("path" -> zippedPath)) - } else { - raster + try { + val bytes = inputRaster.asInstanceOf[Array[Byte]] + val raster = MosaicRasterGDAL.readRaster(bytes, createInfo) + // If the raster is coming as a byte array, we can't check for zip condition. + // We first try to read the raster directly, if it fails, we read it as a zip. + if (raster == null) { + val parentPath = createInfo("parentPath") + val zippedPath = s"/vsizip/$parentPath" + MosaicRasterGDAL.readRaster(bytes, createInfo + ("path" -> zippedPath)) + } else { + raster + } + } catch { + case _: ClassCastException => + MosaicRasterGDAL.readRaster(createInfo) } case _ => throw new IllegalArgumentException(s"Unsupported data type: $inputDT") } diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 52f235822..4672b000a 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -174,8 +174,8 @@ object MosaicRasterTile { val index = row.get(0, idDataType) val rawRaster = row.get(1, rasterDataType) val createInfo = extractMap(row.getMap(2)) - val raster = GDAL.readRaster(rawRaster, createInfo, rasterDataType) + // noinspection TypeCheckCanBeMatch if (Option(index).isDefined) { if (index.isInstanceOf[Long]) { From f65dfd148e57ec8639fa82838c8de30a6057f4b1 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 8 May 2024 14:01:16 -0400 Subject: [PATCH 15/38] serialize fallback to path on raster ClassCastException --- .../labs/mosaic/core/raster/api/GDAL.scala | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index 6c04c2c7f..803582735 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -123,6 +123,15 @@ object GDAL { } } + private def writeRasterString(raster: MosaicRasterGDAL): UTF8String = { + val uuid = UUID.randomUUID().toString + val extension = GDAL.getExtension(raster.getDriversShortName) + val writePath = s"${getCheckpointPath}/$uuid.$extension" + val outPath = raster.writeToPath(writePath) + RasterCleaner.dispose(raster) + UTF8String.fromString(outPath) + } + /** * Writes the given rasters to either a path or a byte array. * @@ -139,17 +148,15 @@ object GDAL { generatedRasters.map(raster => if (raster != null) { rasterDT match { - case StringType => - val uuid = UUID.randomUUID().toString - val extension = GDAL.getExtension(raster.getDriversShortName) - val writePath = s"${getCheckpointPath}/$uuid.$extension" - val outPath = raster.writeToPath(writePath) - RasterCleaner.dispose(raster) - UTF8String.fromString(outPath) + case StringType => writeRasterString(raster) case BinaryType => - val bytes = raster.writeToBytes() - RasterCleaner.dispose(raster) - bytes + try { + val bytes = raster.writeToBytes() + RasterCleaner.dispose(raster) + bytes + } catch { + case _: ClassCastException => writeRasterString(raster) + } } } else { null From 0074150afbc1a712dd2068cedccd15b1fe270427 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 8 May 2024 18:05:30 -0400 Subject: [PATCH 16/38] deserialization handling --- .../labs/mosaic/core/raster/api/GDAL.scala | 67 +++++++++++++++---- .../core/raster/gdal/MosaicRasterGDAL.scala | 12 ++-- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index 803582735..d4b546d03 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -100,29 +100,70 @@ object GDAL { inputDT: DataType ): MosaicRasterGDAL = { inputDT match { - case StringType => - MosaicRasterGDAL.readRaster(createInfo) - case BinaryType => - try { + case _: StringType => + val rasterObj = readSomeString(createInfo) + if (rasterObj.isEmpty) { + MosaicRasterGDAL(null, createInfo, -1) + } else { + rasterObj.get + } + case _: BinaryType => + // [a] handle when raster is actually a string + if (inputRaster.isInstanceOf[UTF8String] || inputRaster.isInstanceOf[String]) { + val rasterObj = readSomeString(createInfo) + if (rasterObj.isEmpty) { + MosaicRasterGDAL(null, createInfo, -1) + } else { + rasterObj.get + } + } else { val bytes = inputRaster.asInstanceOf[Array[Byte]] - val raster = MosaicRasterGDAL.readRaster(bytes, createInfo) - // If the raster is coming as a byte array, we can't check for zip condition. - // We first try to read the raster directly, if it fails, we read it as a zip. - if (raster == null) { + // [b] handle bytes + path + val rasterObj = readSomeBinary(bytes, createInfo) + if (rasterObj.isEmpty) { + // [c] handle bytes + parent path val parentPath = createInfo("parentPath") val zippedPath = s"/vsizip/$parentPath" - MosaicRasterGDAL.readRaster(bytes, createInfo + ("path" -> zippedPath)) + val zipRasterObj = readSomeBinary(bytes, createInfo + ("path" -> zippedPath)) + if (zipRasterObj.isEmpty) { + MosaicRasterGDAL(null, createInfo, -1) + } else { + zipRasterObj.get + } } else { - raster + rasterObj.get } - } catch { - case _: ClassCastException => - MosaicRasterGDAL.readRaster(createInfo) } case _ => throw new IllegalArgumentException(s"Unsupported data type: $inputDT") } } + private def readSomeString(createInfo: Map[String, String]): Option[MosaicRasterGDAL] = { + try { + val rasterObj = MosaicRasterGDAL.readRaster(createInfo) + if (rasterObj.raster == null) { + None + } else { + Option(rasterObj) + } + } catch { + case _: Throwable => None + } + } + + private def readSomeBinary(bytes: Array[Byte], createInfo: Map[String, String]): Option[MosaicRasterGDAL] = { + try { + val rasterObj = MosaicRasterGDAL.readRaster(bytes, createInfo) + if (rasterObj.raster == null) { + None + } else { + Option(rasterObj) + } + } catch { + case _: Throwable => None + } + } + private def writeRasterString(raster: MosaicRasterGDAL): UTF8String = { val uuid = UUID.randomUUID().toString val extension = GDAL.getExtension(raster.getDriversShortName) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala index 988a5719f..e9195e0ed 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala @@ -759,8 +759,8 @@ object MosaicRasterGDAL extends RasterReader { val zippedPath = s"$tmpPath.zip" Files.move(Paths.get(tmpPath), Paths.get(zippedPath), StandardCopyOption.REPLACE_EXISTING) val readPath = PathUtils.getZipPath(zippedPath) - val ds = pathAsDataset(readPath, Some(driverShortName)) - if (ds == null) { + val ds1 = pathAsDataset(readPath, Some(driverShortName)) + if (ds1 == null) { // the way we zip using uuid is not compatible with GDAL // we need to unzip and read the file if it was zipped by us val parentDir = Paths.get(zippedPath).getParent @@ -771,13 +771,13 @@ object MosaicRasterGDAL extends RasterReader { val extension = GDAL.getExtension(driverShortName) val lastExtracted = SysUtils.getLastOutputLine(prompt) val unzippedPath = PathUtils.parseUnzippedPathFromExtracted(lastExtracted, extension) - val dataset = pathAsDataset(unzippedPath, Some(driverShortName)) - if (dataset == null) { + val ds2 = pathAsDataset(unzippedPath, Some(driverShortName)) + if (ds2 == null) { throw new Exception(s"Error reading raster from bytes: ${prompt._3}") } - MosaicRasterGDAL(dataset, createInfo + ("path" -> unzippedPath), contentBytes.length) + MosaicRasterGDAL(ds2, createInfo + ("path" -> unzippedPath), contentBytes.length) } else { - MosaicRasterGDAL(ds, createInfo + ("path" -> readPath), contentBytes.length) + MosaicRasterGDAL(ds1, createInfo + ("path" -> readPath), contentBytes.length) } } else { MosaicRasterGDAL(dataset, createInfo + ("path" -> tmpPath), contentBytes.length) From b660135efcd946f3f722d6256070fe3c1434f55f Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 8 May 2024 22:01:29 -0400 Subject: [PATCH 17/38] classcastexception and null check. --- .../labs/mosaic/core/raster/api/GDAL.scala | 54 ++++++++++--------- .../core/types/model/MosaicRasterTile.scala | 6 ++- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index d4b546d03..475b43a25 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -99,42 +99,46 @@ object GDAL { createInfo: Map[String, String], inputDT: DataType ): MosaicRasterGDAL = { - inputDT match { - case _: StringType => - val rasterObj = readSomeString(createInfo) - if (rasterObj.isEmpty) { - MosaicRasterGDAL(null, createInfo, -1) - } else { - rasterObj.get - } - case _: BinaryType => - // [a] handle when raster is actually a string - if (inputRaster.isInstanceOf[UTF8String] || inputRaster.isInstanceOf[String]) { + if (inputRaster == null) { + MosaicRasterGDAL(null, createInfo, -1) + } else { + inputDT match { + case _: StringType => val rasterObj = readSomeString(createInfo) if (rasterObj.isEmpty) { MosaicRasterGDAL(null, createInfo, -1) } else { rasterObj.get } - } else { - val bytes = inputRaster.asInstanceOf[Array[Byte]] - // [b] handle bytes + path - val rasterObj = readSomeBinary(bytes, createInfo) - if (rasterObj.isEmpty) { - // [c] handle bytes + parent path - val parentPath = createInfo("parentPath") - val zippedPath = s"/vsizip/$parentPath" - val zipRasterObj = readSomeBinary(bytes, createInfo + ("path" -> zippedPath)) - if (zipRasterObj.isEmpty) { + case _: BinaryType => + // [a] handle when raster is actually a string + if (inputRaster.isInstanceOf[UTF8String] || inputRaster.isInstanceOf[String]) { + val rasterObj = readSomeString(createInfo) + if (rasterObj.isEmpty) { MosaicRasterGDAL(null, createInfo, -1) } else { - zipRasterObj.get + rasterObj.get } } else { - rasterObj.get + val bytes = inputRaster.asInstanceOf[Array[Byte]] + // [b] handle bytes + path + val rasterObj = readSomeBinary(bytes, createInfo) + if (rasterObj.isEmpty) { + // [c] handle bytes + parent path + val parentPath = createInfo("parentPath") + val zippedPath = s"/vsizip/$parentPath" + val zipRasterObj = readSomeBinary(bytes, createInfo + ("path" -> zippedPath)) + if (zipRasterObj.isEmpty) { + MosaicRasterGDAL(null, createInfo, -1) + } else { + zipRasterObj.get + } + } else { + rasterObj.get + } } - } - case _ => throw new IllegalArgumentException(s"Unsupported data type: $inputDT") + case _ => throw new IllegalArgumentException(s"Unsupported data type: $inputDT") + } } } diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 4672b000a..0199b0338 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -167,12 +167,15 @@ object MosaicRasterTile { * An instance of [[InternalRow]]. * @param idDataType * The data type of the index ID. + * @param rasterDataType + * The data type of the tile's raster. * @return * An instance of [[MosaicRasterTile]]. */ def deserialize(row: InternalRow, idDataType: DataType, rasterDataType: DataType): MosaicRasterTile = { val index = row.get(0, idDataType) - val rawRaster = row.get(1, rasterDataType) + // handle checkpoint related de-serialization + val rawRaster = Try(row.get(1, rasterDataType)).getOrElse(row.getUTF8String(1)) val createInfo = extractMap(row.getMap(2)) val raster = GDAL.readRaster(rawRaster, createInfo, rasterDataType) @@ -186,7 +189,6 @@ object MosaicRasterTile { } else { new MosaicRasterTile(null, raster) } - } } From f0623973b882f503fa92b51a0506931daab38205 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Thu, 9 May 2024 17:01:18 -0400 Subject: [PATCH 18/38] RasterTileTile now checkpoint aware. --- .../labs/mosaic/core/raster/api/GDAL.scala | 76 +++++------------ .../mosaic/core/types/RasterTileType.scala | 85 +++++++++++++------ .../core/types/model/MosaicRasterTile.scala | 13 +-- .../mosaic/datasource/gdal/ReTileOnRead.scala | 2 +- .../mosaic/datasource/gdal/ReadAsPath.scala | 2 +- .../mosaic/datasource/gdal/ReadInMemory.scala | 2 +- .../mosaic/expressions/raster/RST_Clip.scala | 6 +- .../expressions/raster/RST_CombineAvg.scala | 6 +- .../raster/RST_CombineAvgAgg.scala | 5 +- .../expressions/raster/RST_Convolve.scala | 6 +- .../expressions/raster/RST_DerivedBand.scala | 6 +- .../raster/RST_DerivedBandAgg.scala | 7 +- .../expressions/raster/RST_Filter.scala | 6 +- .../expressions/raster/RST_FromBands.scala | 10 ++- .../expressions/raster/RST_FromContent.scala | 5 +- .../expressions/raster/RST_FromFile.scala | 5 +- .../raster/RST_GetSubdataset.scala | 6 +- .../expressions/raster/RST_InitNoData.scala | 5 +- .../expressions/raster/RST_MakeTiles.scala | 9 +- .../expressions/raster/RST_MapAlgebra.scala | 5 +- .../mosaic/expressions/raster/RST_Merge.scala | 6 +- .../expressions/raster/RST_MergeAgg.scala | 7 +- .../mosaic/expressions/raster/RST_NDVI.scala | 6 +- .../expressions/raster/RST_ReTile.scala | 1 + .../expressions/raster/RST_SetNoData.scala | 5 +- .../expressions/raster/RST_SetSRID.scala | 6 +- .../expressions/raster/RST_Transform.scala | 6 +- .../raster/base/Raster1ArgExpression.scala | 2 +- .../raster/base/Raster2ArgExpression.scala | 3 +- .../base/RasterArray1ArgExpression.scala | 3 +- .../base/RasterArray2ArgExpression.scala | 3 +- .../raster/base/RasterArrayExpression.scala | 7 +- .../raster/base/RasterArrayUtils.scala | 2 +- .../raster/base/RasterBandExpression.scala | 2 +- .../raster/base/RasterExpression.scala | 2 +- .../base/RasterGeneratorExpression.scala | 7 +- .../RasterTessellateGeneratorExpression.scala | 15 +++- .../raster/base/RasterToGridExpression.scala | 6 +- .../functions/MosaicExpressionConfig.scala | 6 ++ .../labs/mosaic/gdal/MosaicGDAL.scala | 21 ++--- .../ST_HasValidCoordinatesBehaviors.scala | 2 +- 41 files changed, 230 insertions(+), 155 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index 475b43a25..a9acb1f83 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -103,68 +103,36 @@ object GDAL { MosaicRasterGDAL(null, createInfo, -1) } else { inputDT match { - case _: StringType => - val rasterObj = readSomeString(createInfo) - if (rasterObj.isEmpty) { - MosaicRasterGDAL(null, createInfo, -1) - } else { - rasterObj.get - } + case _: StringType => MosaicRasterGDAL.readRaster(createInfo) case _: BinaryType => - // [a] handle when raster is actually a string - if (inputRaster.isInstanceOf[UTF8String] || inputRaster.isInstanceOf[String]) { - val rasterObj = readSomeString(createInfo) - if (rasterObj.isEmpty) { - MosaicRasterGDAL(null, createInfo, -1) - } else { - rasterObj.get - } - } else { - val bytes = inputRaster.asInstanceOf[Array[Byte]] - // [b] handle bytes + path - val rasterObj = readSomeBinary(bytes, createInfo) - if (rasterObj.isEmpty) { - // [c] handle bytes + parent path - val parentPath = createInfo("parentPath") - val zippedPath = s"/vsizip/$parentPath" - val zipRasterObj = readSomeBinary(bytes, createInfo + ("path" -> zippedPath)) - if (zipRasterObj.isEmpty) { - MosaicRasterGDAL(null, createInfo, -1) + val bytes = inputRaster.asInstanceOf[Array[Byte]] + try { + val rasterObj = MosaicRasterGDAL.readRaster(bytes, createInfo) + if (rasterObj.raster == null) { + val rasterZipObj = readParentZipBinary(bytes, createInfo) + if (rasterZipObj.raster == null) { + rasterObj // <- return initial } else { - zipRasterObj.get + rasterZipObj } } else { - rasterObj.get + rasterObj } + } catch { + case _: Throwable => readParentZipBinary(bytes, createInfo) } case _ => throw new IllegalArgumentException(s"Unsupported data type: $inputDT") } } } - private def readSomeString(createInfo: Map[String, String]): Option[MosaicRasterGDAL] = { + private def readParentZipBinary(bytes: Array[Byte], createInfo: Map[String, String]): MosaicRasterGDAL = { try { - val rasterObj = MosaicRasterGDAL.readRaster(createInfo) - if (rasterObj.raster == null) { - None - } else { - Option(rasterObj) - } + val parentPath = createInfo("parentPath") + val zippedPath = s"/vsizip/$parentPath" + MosaicRasterGDAL.readRaster(bytes, createInfo + ("path" -> zippedPath)) } catch { - case _: Throwable => None - } - } - - private def readSomeBinary(bytes: Array[Byte], createInfo: Map[String, String]): Option[MosaicRasterGDAL] = { - try { - val rasterObj = MosaicRasterGDAL.readRaster(bytes, createInfo) - if (rasterObj.raster == null) { - None - } else { - Option(rasterObj) - } - } catch { - case _: Throwable => None + case _: Throwable => MosaicRasterGDAL(null, createInfo, -1) } } @@ -195,13 +163,9 @@ object GDAL { rasterDT match { case StringType => writeRasterString(raster) case BinaryType => - try { - val bytes = raster.writeToBytes() - RasterCleaner.dispose(raster) - bytes - } catch { - case _: ClassCastException => writeRasterString(raster) - } + val bytes = raster.writeToBytes() + RasterCleaner.dispose(raster) + bytes } } else { null diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/RasterTileType.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/RasterTileType.scala index 137d482ce..d611252ad 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/RasterTileType.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/RasterTileType.scala @@ -1,12 +1,14 @@ package com.databricks.labs.mosaic.core.types +import com.databricks.labs.mosaic.core.types.RasterTileType.getRasterDataType import org.apache.spark.sql.catalyst.expressions.Expression import org.apache.spark.sql.types._ /** Type definition for the raster tile. */ -class RasterTileType(fields: Array[StructField]) extends StructType(fields) { +class RasterTileType(fields: Array[StructField], useCheckpoint: Boolean) extends StructType(fields) { - def rasterType: DataType = fields.find(_.name == "raster").get.dataType + def rasterType: DataType = getRasterDataType( + fields.find(_.name == "raster").get.dataType, useCheckpoint) override def simpleString: String = "RASTER_TILE" @@ -17,54 +19,89 @@ class RasterTileType(fields: Array[StructField]) extends StructType(fields) { object RasterTileType { /** - * Creates a new instance of [[RasterTileType]]. + * Change data type to [[StringType]] if using checkpointing. + * @param dataType + * Data type to use if not checkpointing. + * @param useCheckpoint + * Use to test for checkpointing enabled. + * @return + * Returns [[DataType]] based on checkpointing enabled. + */ + def getRasterDataType(dataType: DataType, useCheckpoint: Boolean): DataType = { + // change to StringType if using checkpoint + dataType match { + case _: BinaryType if useCheckpoint => StringType + case t => t + } + } + + /** + * [APPLY-1] - Creates a new instance of [[RasterTileType]] with Array. * * @param idType - * Type of the index ID. Can be one of [[LongType]], [[IntegerType]] or - * [[StringType]]. + * Cellid type, can be one of [[LongType]], [[IntegerType]] or [[StringType]]. * @param rasterType * Type of the raster. Can be one of [[ByteType]] or [[StringType]]. Not * to be confused with the data type of the raster. This is the type of * the column that contains the raster. - * + * @param useCheckpoint + * Use to test for checkpointing enabled. * @return - * An instance of [[RasterTileType]]. + * Array RasterTileType [[DataType]]. */ - def apply(idType: DataType, rasterType: DataType): DataType = { + def apply(idType: DataType, rasterType: DataType, useCheckpoint: Boolean): DataType = { require(Seq(LongType, IntegerType, StringType).contains(idType)) new RasterTileType( - Array( - StructField("index_id", idType), - StructField("raster", rasterType), - StructField("metadata", MapType(StringType, StringType)) - ) + Array( + StructField("index_id", idType), + StructField("raster", getRasterDataType(rasterType, useCheckpoint)), + StructField("metadata", MapType(StringType, StringType)) + ), + useCheckpoint ) } /** - * Creates a new instance of [[RasterTileType]]. + * [APPLY-2] - Creates a new instance of [[RasterTileType]]. + * Internally, calls [APPLY-1]. * * @param idType - * Type of the index ID. Can be one of [[LongType]], [[IntegerType]] or - * [[StringType]]. + * Cellid type, can be one of [[LongType]], [[IntegerType]] or [[StringType]]. * @param tileExpr - * Expression containing a tile. This is used to infer the raster type - * when chaining expressions. + * Expression containing a tile. This is used to infer the raster type + * when chaining expressions; may be an array of tiles. + * @param useCheckpoint + * Use to test for checkpointing enabled. * @return + * RasterTileType as [[DataType]] */ - def apply(idType: DataType, tileExpr: Expression): DataType = { + def apply(idType: DataType, tileExpr: Expression, useCheckpoint: Boolean): DataType = { require(Seq(LongType, IntegerType, StringType).contains(idType)) tileExpr.dataType match { - case st @ StructType(_) => apply(idType, st.find(_.name == "raster").get.dataType) - case _ @ArrayType(elementType: StructType, _) => apply(idType, elementType.find(_.name == "raster").get.dataType) + case st @ StructType(_) => + apply(idType, st.find(_.name == "raster").get.dataType, useCheckpoint) + case _ @ArrayType(elementType: StructType, _) => + apply(idType, elementType.find(_.name == "raster").get.dataType, useCheckpoint) case _ => throw new IllegalArgumentException("Unsupported raster type.") } } - def apply(tileExpr: Expression): RasterTileType = { + /** + * [APPLY-3] - Creates a new instance of [[RasterTileType]]. + * Internally, calls class constructor. + * + * @param tileExpr + * Expression containing a tile. This is used to infer the raster type + * when chaining expressions; may be an array of tiles. + * @param useCheckpoint + * Use to test for checkpointing enabled. + * @return + * [[RasterTileType]] + */ + def apply(tileExpr: Expression, useCheckpoint: Boolean): RasterTileType = { tileExpr.dataType match { - case StructType(fields) => new RasterTileType(fields) - case ArrayType(elementType: StructType, _) => new RasterTileType(elementType.fields) + case StructType(fields) => new RasterTileType(fields, useCheckpoint) + case ArrayType(elementType: StructType, _) => new RasterTileType(elementType.fields, useCheckpoint) case _ => throw new IllegalArgumentException("Unsupported raster type.") } } diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 0199b0338..b27f6147e 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -103,16 +103,9 @@ case class MosaicRasterTile( * An instance of [[InternalRow]]. */ def serialize(rasterDataType: DataType): InternalRow = { - - // 0.4.2 - override rasterDataType if checkpoint - val rasterDT: DataType = rasterDataType match { - case _: BinaryType if MosaicGDAL.isUseCheckpoint => StringType - case _ => rasterDataType - } - - val encodedRaster = encodeRaster(rasterDT) + val encodedRaster = encodeRaster(rasterDataType) val path = encodedRaster match { - case string: UTF8String => string.toString + case uStr: UTF8String => uStr.toString case _ => raster.createInfo("path") } val parentPath = { @@ -175,7 +168,7 @@ object MosaicRasterTile { def deserialize(row: InternalRow, idDataType: DataType, rasterDataType: DataType): MosaicRasterTile = { val index = row.get(0, idDataType) // handle checkpoint related de-serialization - val rawRaster = Try(row.get(1, rasterDataType)).getOrElse(row.getUTF8String(1)) + val rawRaster = row.get(1, rasterDataType) val createInfo = extractMap(row.getMap(2)) val raster = GDAL.readRaster(rawRaster, createInfo, rasterDataType) diff --git a/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReTileOnRead.scala b/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReTileOnRead.scala index b68a580d2..208f5ffd5 100644 --- a/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReTileOnRead.scala +++ b/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReTileOnRead.scala @@ -63,7 +63,7 @@ object ReTileOnRead extends ReadStrategy { // Note that for retiling we always use checkpoint location. // In this case rasters are stored off spark rows. // If you need the tiles in memory please load them from path stored in the tile returned by the reader. - .add(StructField(TILE, RasterTileType(indexSystem.getCellIdDataType, tileDataType), nullable = false)) + .add(StructField(TILE, RasterTileType(indexSystem.getCellIdDataType, tileDataType, useCheckpoint = true), nullable = false)) } /** diff --git a/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadAsPath.scala b/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadAsPath.scala index 0973146ef..62bef4c9b 100644 --- a/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadAsPath.scala +++ b/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadAsPath.scala @@ -62,7 +62,7 @@ object ReadAsPath extends ReadStrategy { // Note that for retiling we always use checkpoint location. // In this case rasters are stored off spark rows. // If you need the tiles in memory please load them from path stored in the tile returned by the reader. - .add(StructField(TILE, RasterTileType(indexSystem.getCellIdDataType, tileDataType), nullable = false)) + .add(StructField(TILE, RasterTileType(indexSystem.getCellIdDataType, tileDataType, useCheckpoint = true), nullable = false)) } /** diff --git a/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadInMemory.scala b/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadInMemory.scala index 7e6687079..def6cae19 100644 --- a/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadInMemory.scala +++ b/src/main/scala/com/databricks/labs/mosaic/datasource/gdal/ReadInMemory.scala @@ -51,7 +51,7 @@ object ReadInMemory extends ReadStrategy { .add(StructField(SRID, IntegerType, nullable = false)) // Note, for in memory reads the rasters are stored in the tile. // For that we use Binary Columns. - .add(StructField(TILE, RasterTileType(indexSystem.getCellIdDataType, BinaryType), nullable = false)) + .add(StructField(TILE, RasterTileType(indexSystem.getCellIdDataType, BinaryType, useCheckpoint = false), nullable = false)) } /** diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Clip.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Clip.scala index 84e4577be..f9ea405f6 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Clip.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Clip.scala @@ -1,6 +1,7 @@ package com.databricks.labs.mosaic.expressions.raster import com.databricks.labs.mosaic.core.geometry.api.GeometryAPI +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.clip.RasterClipByVector import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -25,7 +26,10 @@ case class RST_Clip( with NullIntolerant with CodegenFallback { - override def dataType: org.apache.spark.sql.types.DataType = RasterTileType(expressionConfig.getCellIdType, rastersExpr) + override def dataType: org.apache.spark.sql.types.DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, rastersExpr, expressionConfig.isRasterUseCheckpoint) + } val geometryAPI: GeometryAPI = GeometryAPI(expressionConfig.getGeometryAPI) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvg.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvg.scala index de163ca37..e2e024fee 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvg.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvg.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.CombineAVG import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -23,7 +24,10 @@ case class RST_CombineAvg( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** Combines the rasters using average of pixels. */ override def rasterTransform(tiles: Seq[MosaicRasterTile]): Any = { diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala index 3bf9248c2..795901df5 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala @@ -31,11 +31,12 @@ case class RST_CombineAvgAgg( ) extends TypedImperativeAggregate[ArrayBuffer[Any]] with UnaryLike[Expression] with RasterExpressionSerialization { - + GDAL.enable(expressionConfig) override lazy val deterministic: Boolean = true override val child: Expression = tileExpr override val nullable: Boolean = false - override lazy val dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override lazy val dataType: DataType = RasterTileType( + expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) lazy val tileType: DataType = dataType.asInstanceOf[RasterTileType].rasterType override def prettyName: String = "rst_combine_avg_agg" val cellIDType: DataType = expressionConfig.getCellIdType diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Convolve.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Convolve.scala index d831ad849..90325feff 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Convolve.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Convolve.scala @@ -1,6 +1,7 @@ package com.databricks.labs.mosaic.expressions.raster import com.databricks.labs.mosaic.core.geometry.api.GeometryAPI +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.{GenericExpressionFactory, WithExpressionInfo} @@ -26,7 +27,10 @@ case class RST_Convolve( with NullIntolerant with CodegenFallback { - override def dataType: org.apache.spark.sql.types.DataType = RasterTileType(expressionConfig.getCellIdType, rastersExpr) + override def dataType: org.apache.spark.sql.types.DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, rastersExpr, expressionConfig.isRasterUseCheckpoint) + } val geometryAPI: GeometryAPI = GeometryAPI(expressionConfig.getGeometryAPI) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBand.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBand.scala index 459f1774a..11d05e5cf 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBand.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBand.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.pixel.PixelCombineRasters import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -28,7 +29,10 @@ case class RST_DerivedBand( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** Combines the rasters using average of pixels. */ override def rasterTransform(tiles: Seq[MosaicRasterTile], arg1: Any, arg2: Any): Any = { diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAgg.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAgg.scala index 836b79cbd..d8db6879d 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAgg.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_DerivedBandAgg.scala @@ -36,7 +36,10 @@ case class RST_DerivedBandAgg( override lazy val deterministic: Boolean = true override val nullable: Boolean = false - override lazy val dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override lazy val dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } override def prettyName: String = "rst_combine_avg_agg" private lazy val projection = UnsafeProjection.create(Array[DataType](ArrayType(elementType = dataType, containsNull = false))) @@ -74,7 +77,7 @@ case class RST_DerivedBandAgg( // This works for Literals only val pythonFunc = pythonFuncExpr.eval(null).asInstanceOf[UTF8String].toString val funcName = funcNameExpr.eval(null).asInstanceOf[UTF8String].toString - val rasterType = RasterTileType(tileExpr).rasterType + val rasterType = RasterTileType(tileExpr, expressionConfig.isRasterUseCheckpoint).rasterType // Do do move the expression var tiles = buffer.map(row => diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Filter.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Filter.scala index ee8b34d3b..6472c77f5 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Filter.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Filter.scala @@ -1,6 +1,7 @@ package com.databricks.labs.mosaic.expressions.raster import com.databricks.labs.mosaic.core.geometry.api.GeometryAPI +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.{GenericExpressionFactory, WithExpressionInfo} @@ -27,7 +28,10 @@ case class RST_Filter( with NullIntolerant with CodegenFallback { - override def dataType: org.apache.spark.sql.types.DataType = RasterTileType(expressionConfig.getCellIdType, rastersExpr) + override def dataType: org.apache.spark.sql.types.DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, rastersExpr, expressionConfig.isRasterUseCheckpoint) + } val geometryAPI: GeometryAPI = GeometryAPI(expressionConfig.getGeometryAPI) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBands.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBands.scala index 8325dc0f4..839004f87 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBands.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromBands.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.merge.MergeBands import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -9,7 +10,7 @@ import com.databricks.labs.mosaic.functions.MosaicExpressionConfig import org.apache.spark.sql.catalyst.analysis.FunctionRegistry.FunctionBuilder import org.apache.spark.sql.catalyst.expressions.codegen.CodegenFallback import org.apache.spark.sql.catalyst.expressions.{Expression, NullIntolerant} -import org.apache.spark.sql.types.ArrayType + /** The expression for stacking and resampling input bands. */ case class RST_FromBands( @@ -23,11 +24,14 @@ case class RST_FromBands( with NullIntolerant with CodegenFallback { - override def dataType: org.apache.spark.sql.types.DataType = + override def dataType: org.apache.spark.sql.types.DataType = { + GDAL.enable(expressionConfig) RasterTileType( expressionConfig.getCellIdType, - RasterTileType(bandsExpr).rasterType + RasterTileType(bandsExpr, expressionConfig.isRasterUseCheckpoint).rasterType, + expressionConfig.isRasterUseCheckpoint ) + } /** * Stacks and resamples input bands. diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala index 22a01981b..2669e5fd0 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala @@ -36,7 +36,10 @@ case class RST_FromContent( val tileType: DataType = BinaryType - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileType) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileType, expressionConfig.isRasterUseCheckpoint) + } protected val geometryAPI: GeometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala index 8e1dc213e..64a446251 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala @@ -35,7 +35,10 @@ case class RST_FromFile( val tileType: DataType = BinaryType - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileType) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileType, expressionConfig.isRasterUseCheckpoint) + } protected val geometryAPI: GeometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdataset.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdataset.scala index 1589fa463..88df43f25 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdataset.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_GetSubdataset.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.{GenericExpressionFactory, WithExpressionInfo} @@ -25,7 +26,10 @@ case class RST_GetSubdataset( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** Returns the subdatasets of the raster. */ override def rasterTransform(tile: MosaicRasterTile, arg1: Any): Any = { diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoData.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoData.scala index 6f92b79ae..0902ecd4f 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoData.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_InitNoData.scala @@ -25,7 +25,10 @@ case class RST_InitNoData( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** * Initializes no data values of a raster. diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala index c3ee47f21..f9279c568 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala @@ -61,14 +61,17 @@ case class RST_MakeTiles( with NullIntolerant with CodegenFallback { + /** @return Returns StringType if either */ override def dataType: DataType = { + GDAL.enable(expressionConfig) require(withCheckpointExpr.isInstanceOf[Literal]) - if (withCheckpointExpr.eval().asInstanceOf[Boolean]) { + + if (withCheckpointExpr.eval().asInstanceOf[Boolean] || expressionConfig.isRasterUseCheckpoint) { // Raster is referenced via a path - RasterTileType(expressionConfig.getCellIdType, StringType) + RasterTileType(expressionConfig.getCellIdType, StringType, useCheckpoint = true) } else { // Raster is referenced via a byte array - RasterTileType(expressionConfig.getCellIdType, BinaryType) + RasterTileType(expressionConfig.getCellIdType, BinaryType, useCheckpoint = false) } } diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MapAlgebra.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MapAlgebra.scala index bc2aea949..ff3d85351 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MapAlgebra.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MapAlgebra.scala @@ -28,7 +28,10 @@ case class RST_MapAlgebra( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** * Map Algebra. diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Merge.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Merge.scala index 09d4b9d3d..e57f1c65b 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Merge.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Merge.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.merge.MergeRasters import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -23,7 +24,10 @@ case class RST_Merge( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** * Merges an array of rasters. diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAgg.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAgg.scala index ae56a01ab..dd3d91ef4 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAgg.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MergeAgg.scala @@ -31,7 +31,10 @@ case class RST_MergeAgg( override lazy val deterministic: Boolean = true override val child: Expression = tileExpr override val nullable: Boolean = false - override lazy val dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override lazy val dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } override def prettyName: String = "rst_merge_agg" private lazy val projection = UnsafeProjection.create(Array[DataType](ArrayType(elementType = dataType, containsNull = false))) @@ -66,7 +69,7 @@ case class RST_MergeAgg( // This is a trick to get the rasters sorted by their parent path to ensure more consistent results // when merging rasters with large overlaps - val rasterType = RasterTileType(tileExpr).rasterType + val rasterType = RasterTileType(tileExpr, expressionConfig.isRasterUseCheckpoint).rasterType var tiles = buffer .map(row => MosaicRasterTile.deserialize( diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_NDVI.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_NDVI.scala index 2d7b55fd7..669b661a3 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_NDVI.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_NDVI.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.NDVI import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -27,7 +28,10 @@ case class RST_NDVI( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** * Computes NDVI index. diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTile.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTile.scala index cc1b0e0ee..27eecdedd 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_ReTile.scala @@ -23,6 +23,7 @@ case class RST_ReTile( with NullIntolerant with CodegenFallback { + /** @return provided raster data type (assumes that was handled for checkpointing.)*/ override def dataType: DataType = rasterExpr.dataType /** diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoData.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoData.scala index c42af9c2e..ce56d62b9 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoData.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetNoData.scala @@ -28,7 +28,10 @@ case class RST_SetNoData( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** * Returns a raster with the specified no data values. diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetSRID.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetSRID.scala index 2aabb3df9..51d234fd4 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetSRID.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_SetSRID.scala @@ -1,6 +1,7 @@ package com.databricks.labs.mosaic.expressions.raster import com.databricks.labs.mosaic.core.geometry.api.GeometryAPI +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.{GenericExpressionFactory, WithExpressionInfo} @@ -25,7 +26,10 @@ case class RST_SetSRID( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, rastersExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, rastersExpr, expressionConfig.isRasterUseCheckpoint) + } val geometryAPI: GeometryAPI = GeometryAPI(expressionConfig.getGeometryAPI) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Transform.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Transform.scala index 7681f2bba..2781c8364 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Transform.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_Transform.scala @@ -1,5 +1,6 @@ package com.databricks.labs.mosaic.expressions.raster +import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.operator.proj.RasterProject import com.databricks.labs.mosaic.core.types.RasterTileType import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile @@ -26,7 +27,10 @@ case class RST_Transform( with NullIntolerant with CodegenFallback { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } /** Returns the upper left x of the raster. */ override def rasterTransform(tile: MosaicRasterTile, arg1: Any): Any = { diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster1ArgExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster1ArgExpression.scala index 35ad927c6..01285b652 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster1ArgExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster1ArgExpression.scala @@ -69,7 +69,7 @@ abstract class Raster1ArgExpression[T <: Expression: ClassTag]( // noinspection DuplicatedCode override def nullSafeEval(input: Any, arg1: Any): Any = { GDAL.enable(expressionConfig) - val rasterType = RasterTileType(rasterExpr).rasterType + val rasterType = RasterTileType(rasterExpr, expressionConfig.isRasterUseCheckpoint).rasterType val tile = MosaicRasterTile.deserialize( input.asInstanceOf[InternalRow], expressionConfig.getCellIdType, diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster2ArgExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster2ArgExpression.scala index c5be60724..758802f62 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster2ArgExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/Raster2ArgExpression.scala @@ -8,7 +8,6 @@ import com.databricks.labs.mosaic.expressions.base.GenericExpressionFactory import com.databricks.labs.mosaic.functions.MosaicExpressionConfig import org.apache.spark.sql.catalyst.InternalRow import org.apache.spark.sql.catalyst.expressions.{Expression, NullIntolerant, TernaryExpression} -import org.apache.spark.sql.types.DataType import scala.reflect.ClassTag @@ -78,7 +77,7 @@ abstract class Raster2ArgExpression[T <: Expression: ClassTag]( // noinspection DuplicatedCode override def nullSafeEval(input: Any, arg1: Any, arg2: Any): Any = { GDAL.enable(expressionConfig) - val rasterType = RasterTileType(rasterExpr).rasterType + val rasterType = RasterTileType(rasterExpr, expressionConfig.isRasterUseCheckpoint).rasterType val tile = MosaicRasterTile.deserialize( input.asInstanceOf[InternalRow], expressionConfig.getCellIdType, diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray1ArgExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray1ArgExpression.scala index 5dbfd08cc..85cd4b810 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray1ArgExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray1ArgExpression.scala @@ -7,7 +7,6 @@ import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.GenericExpressionFactory import com.databricks.labs.mosaic.functions.MosaicExpressionConfig import org.apache.spark.sql.catalyst.expressions.{BinaryExpression, Expression, NullIntolerant} -import org.apache.spark.sql.types.ArrayType import scala.reflect.ClassTag @@ -67,7 +66,7 @@ abstract class RasterArray1ArgExpression[T <: Expression: ClassTag]( GDAL.enable(expressionConfig) val tiles = RasterArrayUtils.getTiles(input, rastersExpr, expressionConfig) val result = rasterTransform(tiles, arg1) - val resultType = if (returnsRaster) RasterTileType(rastersExpr).rasterType else dataType + val resultType = if (returnsRaster) RasterTileType(rastersExpr, expressionConfig.isRasterUseCheckpoint).rasterType else dataType val serialized = serialize(result, returnsRaster, resultType, expressionConfig) tiles.foreach(t => RasterCleaner.dispose(t)) serialized diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray2ArgExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray2ArgExpression.scala index 9de963684..d4e362895 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray2ArgExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArray2ArgExpression.scala @@ -7,7 +7,6 @@ import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.GenericExpressionFactory import com.databricks.labs.mosaic.functions.MosaicExpressionConfig import org.apache.spark.sql.catalyst.expressions.{Expression, NullIntolerant, TernaryExpression} -import org.apache.spark.sql.types.ArrayType import scala.reflect.ClassTag @@ -72,7 +71,7 @@ abstract class RasterArray2ArgExpression[T <: Expression: ClassTag]( GDAL.enable(expressionConfig) val tiles = RasterArrayUtils.getTiles(input, rastersExpr, expressionConfig) val result = rasterTransform(tiles, arg1, arg2) - val resultType = if (returnsRaster) RasterTileType(rastersExpr).rasterType else dataType + val resultType = if (returnsRaster) RasterTileType(rastersExpr, expressionConfig.isRasterUseCheckpoint).rasterType else dataType val serialized = serialize(result, returnsRaster, resultType, expressionConfig) tiles.foreach(t => RasterCleaner.dispose(t)) serialized diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayExpression.scala index 8c3a52d9a..55f2d3646 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayExpression.scala @@ -7,7 +7,6 @@ import com.databricks.labs.mosaic.core.types.model.MosaicRasterTile import com.databricks.labs.mosaic.expressions.base.GenericExpressionFactory import com.databricks.labs.mosaic.functions.MosaicExpressionConfig import org.apache.spark.sql.catalyst.expressions.{Expression, NullIntolerant, UnaryExpression} -import org.apache.spark.sql.types.ArrayType import scala.reflect.ClassTag @@ -19,8 +18,8 @@ import scala.reflect.ClassTag * @param rastersExpr * The rasters expression. It is an array column containing rasters as either * paths or as content byte arrays. - * @param outputType - * The output type of the result. + * @param returnsRaster + * Whether raster is returned. * @param expressionConfig * Additional arguments for the expression (expressionConfigs). * @tparam T @@ -64,7 +63,7 @@ abstract class RasterArrayExpression[T <: Expression: ClassTag]( GDAL.enable(expressionConfig) val tiles = RasterArrayUtils.getTiles(input, rastersExpr, expressionConfig) val result = rasterTransform(tiles) - val resultType = if (returnsRaster) RasterTileType(rastersExpr).rasterType else dataType + val resultType = if (returnsRaster) RasterTileType(rastersExpr, expressionConfig.isRasterUseCheckpoint).rasterType else dataType val serialized = serialize(result, returnsRaster, resultType, expressionConfig) tiles.foreach(t => RasterCleaner.dispose(t)) serialized diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayUtils.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayUtils.scala index f2d399350..d97cefde1 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayUtils.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterArrayUtils.scala @@ -13,7 +13,7 @@ object RasterArrayUtils { def getTiles(input: Any, rastersExpr: Expression, expressionConfig: MosaicExpressionConfig): Seq[MosaicRasterTile] = { val rasterDT = rastersExpr.dataType.asInstanceOf[ArrayType].elementType val arrayData = input.asInstanceOf[ArrayData] - val rasterType = RasterTileType(rastersExpr).rasterType + val rasterType = RasterTileType(rastersExpr, expressionConfig.isRasterUseCheckpoint).rasterType val n = arrayData.numElements() (0 until n) .map(i => diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterBandExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterBandExpression.scala index 97bd3e333..e36bc195f 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterBandExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterBandExpression.scala @@ -73,7 +73,7 @@ abstract class RasterBandExpression[T <: Expression: ClassTag]( // noinspection DuplicatedCode override def nullSafeEval(inputRaster: Any, inputBand: Any): Any = { GDAL.enable(expressionConfig) - val rasterType = RasterTileType(rasterExpr).rasterType + val rasterType = RasterTileType(rasterExpr, expressionConfig.isRasterUseCheckpoint).rasterType val tile = MosaicRasterTile.deserialize( inputRaster.asInstanceOf[InternalRow], expressionConfig.getCellIdType, diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterExpression.scala index 66435f101..47f274583 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterExpression.scala @@ -64,7 +64,7 @@ abstract class RasterExpression[T <: Expression: ClassTag]( */ override def nullSafeEval(input: Any): Any = { GDAL.enable(expressionConfig) - val rasterType = RasterTileType(rasterExpr).rasterType + val rasterType = RasterTileType(rasterExpr, expressionConfig.isRasterUseCheckpoint).rasterType val tile = MosaicRasterTile.deserialize( input.asInstanceOf[InternalRow], cellIdDataType, diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterGeneratorExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterGeneratorExpression.scala index 3fc80752d..e124f1917 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterGeneratorExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterGeneratorExpression.scala @@ -38,7 +38,10 @@ abstract class RasterGeneratorExpression[T <: Expression: ClassTag]( with NullIntolerant with Serializable { - override def dataType: DataType = RasterTileType(expressionConfig.getCellIdType, tileExpr) + override def dataType: DataType = { + GDAL.enable(expressionConfig) + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) + } val uuid: String = java.util.UUID.randomUUID().toString.replace("-", "_") @@ -72,7 +75,7 @@ abstract class RasterGeneratorExpression[T <: Expression: ClassTag]( override def eval(input: InternalRow): TraversableOnce[InternalRow] = { GDAL.enable(expressionConfig) - val rasterType = RasterTileType(tileExpr).rasterType + val rasterType = RasterTileType(tileExpr, expressionConfig.isRasterUseCheckpoint).rasterType val tile = MosaicRasterTile.deserialize(tileExpr.eval(input).asInstanceOf[InternalRow], cellIdDataType, rasterType) val generatedRasters = rasterGenerator(tile) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterTessellateGeneratorExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterTessellateGeneratorExpression.scala index 98ff86ca7..80871b66d 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterTessellateGeneratorExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterTessellateGeneratorExpression.scala @@ -27,6 +27,8 @@ import scala.reflect.ClassTag * The expression for the raster. If the raster is stored on disc, the path * to the raster is provided. If the raster is stored in memory, the bytes of * the raster are provided. + * @param resolutionExpr + * The resolution of the index system to use for tessellation. * @param expressionConfig * Additional arguments for the expression (expressionConfigs). * @tparam T @@ -55,8 +57,14 @@ abstract class RasterTessellateGeneratorExpression[T <: Expression: ClassTag]( * needs to be wrapped in a StructType. The actually type is that of the * structs element. */ - override def elementSchema: StructType = - StructType(Array(StructField("element", RasterTileType(indexSystem.getCellIdDataType, tileExpr)))) + override def elementSchema: StructType = { + StructType( + Array(StructField( + "element", + RasterTileType(expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint)) + ) + ) + } /** * The function to be overridden by the extending class. It is called when @@ -71,8 +79,7 @@ abstract class RasterTessellateGeneratorExpression[T <: Expression: ClassTag]( override def eval(input: InternalRow): TraversableOnce[InternalRow] = { GDAL.enable(expressionConfig) - - val rasterType = RasterTileType(tileExpr).rasterType + val rasterType = RasterTileType(tileExpr, expressionConfig.isRasterUseCheckpoint).rasterType val tile = MosaicRasterTile .deserialize(tileExpr.eval(input).asInstanceOf[InternalRow], indexSystem.getCellIdDataType, rasterType) val inResolution: Int = indexSystem.getResolution(resolutionExpr.eval(input)) diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterToGridExpression.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterToGridExpression.scala index e7b04f989..a69f73151 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterToGridExpression.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/base/RasterToGridExpression.scala @@ -25,6 +25,8 @@ import scala.reflect.ClassTag * @param rasterExpr * The raster expression. It can be a path to a raster file or a byte array * containing the raster file content. + * @param resolutionExpr + * The resolution of the index system to use. * @param measureType * The output type of the result. * @param expressionConfig @@ -34,10 +36,10 @@ import scala.reflect.ClassTag */ abstract class RasterToGridExpression[T <: Expression: ClassTag, P]( rasterExpr: Expression, - resolution: Expression, + resolutionExpr: Expression, measureType: DataType, expressionConfig: MosaicExpressionConfig -) extends Raster1ArgExpression[T](rasterExpr, resolution, returnsRaster = false, expressionConfig) +) extends Raster1ArgExpression[T](rasterExpr, resolutionExpr, returnsRaster = false, expressionConfig) with RasterGridExpression with NullIntolerant with Serializable { diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala index 7d7bd33d0..6864942aa 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala @@ -5,6 +5,8 @@ import com.databricks.labs.mosaic.core.index.IndexSystemFactory import org.apache.spark.sql.types.DataType import org.apache.spark.sql.{RuntimeConfig, SparkSession} +import scala.util.Try + /** * Mosaic Expression Config is a class that contains the configuration for the * Mosaic Expression. Singleton objects are not accessible outside the JVM, so @@ -42,6 +44,10 @@ case class MosaicExpressionConfig(configs: Map[String, String]) { def getRasterUseCheckpoint: String = configs.getOrElse(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT) + def isRasterUseCheckpoint: Boolean = { + Try(getRasterUseCheckpoint == "true").getOrElse(false) + } + def getCellIdType: DataType = IndexSystemFactory.getIndexSystem(getIndexSystem).cellIdType def getIndexSystem: String = configs.getOrElse(MOSAIC_INDEX_SYSTEM, H3.name) diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index d8f8dccf2..6239b7b13 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -67,9 +67,7 @@ object MosaicGDAL extends Logging { def configureCheckpoint(mosaicConfig: MosaicExpressionConfig): Unit = { this.checkpointPath = mosaicConfig.getRasterCheckpoint - this.useCheckpoint = { - Try(mosaicConfig.getRasterUseCheckpoint == "true").getOrElse(false) - } + this.useCheckpoint = mosaicConfig.isRasterUseCheckpoint } def setBlockSize(mosaicConfig: MosaicExpressionConfig): Unit = { @@ -156,16 +154,15 @@ object MosaicGDAL extends Logging { enableGDAL(spark) logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") - // [d] register functions again - // - will pick up the config changes. - // - In some (not all) testing, MosaicContext - // might not have been built. - try { + // [d] re-register expressions + // - needed to update the MosaicConfig used. + Try { MosaicContext.context().register(spark) - logInfo("Re-registered expressions in MosaicContext.") - } catch { - case t: Throwable => logWarning("Unable to re-register expressions with MosaicContext (is it initialized?)") - } + logInfo("... re-registered expressions") + }.getOrElse( + logWarning("...Unable to re-register expressions (is MosaicContext initialized?)") + ) + } /** Loads the shared objects required for GDAL. */ diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala index 943b71fc7..37ff278c2 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/geometry/ST_HasValidCoordinatesBehaviors.scala @@ -19,7 +19,7 @@ trait ST_HasValidCoordinatesBehaviors extends MosaicSpatialQueryTest { // noinspection AccessorLikeMethodIsUnit def hasValidCoordinatesBehaviours(mosaicContext: MosaicContext): Unit = { - spark.sparkContext.setLogLevel("FATAL") // <- these tests throw exceptions + spark.sparkContext.setLogLevel("FATAL") // <- otherwise asserted exceptions print val mc = mosaicContext import mc.functions._ mc.register(spark) From 920263d4a4d3ca488c62a999d5d5d6b9b7a26080 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 13 May 2024 10:12:37 -0400 Subject: [PATCH 19/38] pin geopandas ver pinned to 0.14, h3 ver pinned to 3.7, deserialization fix, long-running test fix, streamline gdal and fuse setup. (cherry picked from commit 8ab2bb82457be3c796801383bd9a1f2ab97d27b3) --- .github/workflows/build_main.yml | 5 +- CHANGELOG.md | 16 +-- CONTRIBUTING.md | 5 + README.md | 10 +- docs/source/conf.py | 6 +- docs/source/index.rst | 12 +- .../usage/automatic-sql-registration.rst | 2 +- docs/source/usage/install-gdal.rst | 61 +++++---- docs/source/usage/installation.rst | 43 ++++-- pom.xml | 59 +++----- python/mosaic/api/fuse.py | 12 +- python/mosaic/api/gdal.py | 44 ++---- python/setup.cfg | 5 +- python/test/test_gdal_install.py | 8 -- python/test/utils/setup_gdal.py | 17 --- scripts/mosaic-gdal-init.sh | 9 +- .../labs/mosaic/core/raster/api/GDAL.scala | 128 +++++++----------- .../com/databricks/labs/mosaic/package.scala | 3 +- .../raster/RST_FilterBehaviors.scala | 2 +- .../sql/test/SharedSparkSessionGDAL.scala | 5 +- 20 files changed, 202 insertions(+), 250 deletions(-) diff --git a/.github/workflows/build_main.yml b/.github/workflows/build_main.yml index fc7c5f6eb..f1088a5b6 100644 --- a/.github/workflows/build_main.yml +++ b/.github/workflows/build_main.yml @@ -28,8 +28,7 @@ jobs: uses: ./.github/actions/scala_build - name: build python uses: ./.github/actions/python_build - # CRAN FLAKY (502 'Bad Gateway' ERRORS) - # - name: build R - # uses: ./.github/actions/r_build + - name: build R + uses: ./.github/actions/r_build - name: upload artefacts uses: ./.github/actions/upload_artefacts diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b6724eb1..56e7bff22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,12 @@ ## v0.4.2 [DBR 13.3 LTS] -- Fixed 'raster_to_grid' reader tessellation issue with multiple bands; also adding repartitioning for better performance. -- Expanded support for fuse-based checkpointing (persisted raster storage), managed through: - - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. - - python: `mos.enable_gdal(spark, with_checkpoint_path=path)`. - - scala: `MosaicGDAL.enableGDALWithCheckpoint(spark, path)` function. -- Streamlines `setup_gdal` and `setup_fuse_install`: - - init script and resource copy logic fixed to repo "main" (.so) / "latest" (.jar). - - added apt-get lock handling for native installs. - - removed support for UbuntuGIS PPA as GDAL version no longer compatible with jammy default (3.4.x). +- Geopandas now fixed to "<0.14.4,>=0.14" due to conflict with minimum numpy version in geopandas 0.14.4. - H3 python changed from "==3.7.0" to "<4.0,>=3.7" to pick up patches. +- Fixed an issue with fallback logic when deserializing subdatasets from a zip. +- Adjusted data used to speed up a long-running test. +- Streamlines setup_gdal and setup_fuse_install: + - init script and resource copy logic fixed to repo "main" (.so) / "latest" (.jar). + - added apt-get lock handling for native installs. + - removed support for UbuntuGIS PPA as GDAL version no longer compatible with jammy default (3.4.x). ## v0.4.1 [DBR 13.3 LTS] - Fixed python bindings for MosaicAnalyzer functions. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e321a059..0684cca0b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -83,6 +83,9 @@ The repository is structured as follows: ## Test & build Mosaic +Given that DBR 13.3 is Ubuntu 22.04, we recommend using docker, +see [mosaic-docker.sh](https://github.com/databrickslabs/mosaic/blob/main/scripts/mosaic-docker.sh). + ### Scala JAR We use the [Maven](https://maven.apache.org/install.html) build tool to manage and build the Mosaic scala project. @@ -115,6 +118,8 @@ To build the docs: - Install the pandoc library (follow the instructions for your platform [here](https://pandoc.org/installing.html)). - Install the python requirements from `docs/docs-requirements.txt`. - Build the HTML documentation by running `make html` from `docs/`. + - For nbconvert you may have to symlink your jupyter share folder, + e.g. `sudo ln -s /opt/homebrew/share/jupyter /usr/local/share`. - You can locally host the docs by running the `reload.py` script in the `docs/source/` directory. ## Style diff --git a/README.md b/README.md index 2a07a6294..84d937e6c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ An extension to the [Apache Spark](https://spark.apache.org/) framework that all [![codecov](https://codecov.io/gh/databrickslabs/mosaic/branch/main/graph/badge.svg?token=aEzZ8ITxdg)](https://codecov.io/gh/databrickslabs/mosaic) [![build](https://github.com/databrickslabs/mosaic/actions/workflows/build_main.yml/badge.svg)](https://github.com/databrickslabs/mosaic/actions?query=workflow%3A%22build+main%22) [![docs](https://github.com/databrickslabs/mosaic/actions/workflows/docs.yml/badge.svg)](https://github.com/databrickslabs/mosaic/actions/workflows/docs.yml) -[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/databrickslabs/mosaic.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/databrickslabs/mosaic/context:python) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![lines of code](https://tokei.rs/b1/github/databrickslabs/mosaic)]([https://codecov.io/github/databrickslabs/mosaic](https://github.com/databrickslabs/mosaic)) @@ -42,6 +41,13 @@ Image1: Mosaic logical design. ## Getting started +:warning: **geopandas 0.14.4 not supported** + +For Mosaic <= 0.4.1 `%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic +has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts +with the limits of scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. +Mosaic 0.4.2 release will pin the geopandas version. + ### Mosaic 0.4.x Series [Latest] We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. @@ -142,7 +148,7 @@ import com.databricks.labs.mosaic.JTS val mosaicContext = MosaicContext.build(H3, JTS) mosaicContext.register(spark) ``` -__Note: Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Hive UDFs), but not Shared Access due to API changes, more [here](https://docs.databricks.com/en/udf/index.html).__ +__Note: Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due to API changes, more [here](https://docs.databricks.com/en/udf/index.html).__ ## Examples diff --git a/docs/source/conf.py b/docs/source/conf.py index 1fbaf1965..e81dd3385 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -18,11 +18,11 @@ # -- Project information ----------------------------------------------------- project = 'Mosaic' -copyright = '2022, Databricks Inc' -author = 'Stuart Lynn, Milos Colic, Erni Durdevic, Robert Whiffin, Timo Roest' +copyright = '2024, Databricks Inc' +author = 'Milos Colic, Stuart Lynn, Michael Johns, Robert Whiffin' # The full version, including alpha/beta/rc tags -release = "v0.4.1" +release = "v0.4.2" # -- General configuration --------------------------------------------------- diff --git a/docs/source/index.rst b/docs/source/index.rst index a9b7348d5..8859a1688 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -53,13 +53,15 @@ Mosaic provides: * optimisations for performing point-in-polygon joins using an approach we co-developed with Ordnance Survey (`blog post `_); and * the choice of a Scala, SQL and Python API. +.. warning:: + For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic + has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts + with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. + Mosaic 0.4.2 release will pin the geopandas version. + .. note:: For Mosaic versions < 0.4 please use the `0.3 docs `_. -.. warning:: - At times, it is useful to "hard refresh" pages to ensure your cached local version matches the latest live, - more `here `_. - Version 0.4.x Series ==================== @@ -85,7 +87,7 @@ As of Mosaic 0.4.0 (subject to change in follow-on releases) Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. .. warning:: - Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Hive UDFs), but not Shared Access due + Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due to `Unity Catalog `_ API changes, more `here `_. .. note:: diff --git a/docs/source/usage/automatic-sql-registration.rst b/docs/source/usage/automatic-sql-registration.rst index 6175394d6..56cd1b219 100644 --- a/docs/source/usage/automatic-sql-registration.rst +++ b/docs/source/usage/automatic-sql-registration.rst @@ -11,7 +11,7 @@ to your Spark / Databricks cluster to perform spatial queries or integrating Spa with a geospatial middleware component such as [Geoserver](https://geoserver.org/). .. warning:: - Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Hive UDFs), but not Shared Access due + Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due to `Unity Catalog `_ API changes, more `here `_. Pre-requisites diff --git a/docs/source/usage/install-gdal.rst b/docs/source/usage/install-gdal.rst index 310f41276..cc1801a27 100644 --- a/docs/source/usage/install-gdal.rst +++ b/docs/source/usage/install-gdal.rst @@ -29,9 +29,8 @@ Mosaic requires GDAL to be installed on the cluster. The easiest way to do this the :code:`setup_gdal` function. .. note:: - - This is close in behavior to Mosaic < 0.4 series (prior to DBR 13), with new options - to pip install Mosaic for either ubuntugis gdal (3.4.3) or jammy default (3.4.1). - - Param "to_fuse_dir" can be one of "/Volumes/..", "/Workspace/..", "/dbfs/.."; + - This is close in behavior to Mosaic < 0.4 series (prior to DBR 13), it installs jammy default GDAL (3.4.1). + - Param **to_fuse_dir** can be one of **/Volumes/..**, **/Workspace/..**, **/dbfs/..**; however, you should consider :code:`setup_fuse_install()` for Volume based installs as that exposes more options, to include copying JAR and JNI Shared Objects. @@ -43,19 +42,10 @@ the :code:`setup_gdal` function. :param to_fuse_dir: Path to write out the init script for GDAL installation; default is "/Workspace/Shared/geospatial/mosaic/gdal/jammy". :type to_fuse_dir: str - :param with_mosaic_pip: Whether to configure a script that pip installs databricks-mosaic, - fixed to the current version; default is False. - :type with_mosaic_pip: bool - :param with_ubuntugis: Whether to use ubuntugis ppa for GDAL instead of built-in; - default is False. - :type with_ubuntugis: bool - :param script_out_name: name of the script to be written; - default is "mosaic-gdal-init.sh". + :param script_out_name: Name of the script to be written; default is “mosaic-gdal-init.sh”. :type script_out_name: str - :param override_mosaic_version: String value to use to override the mosaic version to install, - e.g. "==0.4.0" or "<0.5,>=0.4"; default is None. - :type override_mosaic_version: str - :rtype: bool + :param jni_so_copy: Whether to copy shared object to fuse dir and config script to use; default is False. + :type jni_so_copy: bool :example: @@ -69,9 +59,7 @@ the :code:`setup_gdal` function. +-----------------------------------------------------------------------------------------------------------+ | ::: Install setup complete ::: | +-----------------------------------------------------------------------------------------------------------+ - | - Settings: 'with_mosaic_pip'? False, 'with_gdal'? True, 'with_ubuntugis'? False | - | 'jar_copy'? False, 'jni_so_copy'? False, 'override_mosaic_version'? None | - | - Derived: 'mosaic_version'? 0.4.0, 'github_version'? 0.4.0, 'release_version'? None, 'pip_str'? ==0.4.0 | + | - Settings: 'jar_copy'? False, 'jni_so_copy'? False | | - Fuse Dir: '/Workspace/Shared/geospatial/mosaic/gdal/jammy' | | - Init Script: configured and stored at 'mosaic-gdal-init.sh'; add to your cluster and restart, | | more at https://docs.databricks.com/en/init-scripts/cluster-scoped.html | @@ -106,16 +94,13 @@ code at the top of the notebook: GDAL enabled. GDAL 3.4.1, released 2021/12/27 -.. note:: - You can configure init script from default ubuntu GDAL (3.4.1) to ubuntugis ppa @ https://launchpad.net/~ubuntugis/+archive/ubuntu/ppa (3.4.3) - with `setup_gdal(with_ubuntugis=True)` GDAL Configuration #################### Here are spark session configs available for raster, e.g. :code:`spark.conf.set("", "")`. -.. list-table:: Title +.. list-table:: :widths: 25 25 50 :header-rows: 1 @@ -124,10 +109,40 @@ Here are spark session configs available for raster, e.g. :code:`spark.conf.set( - Comments * - spark.databricks.labs.mosaic.raster.checkpoint - "/dbfs/tmp/mosaic/raster/checkpoint" - - Checkpoint location, see :ref:`rst_maketiles` for more + - Checkpoint location, e.g. :ref:`rst_maketiles` + * - spark.databricks.labs.mosaic.raster.use.checkpoint + - "false" + - Checkpoint for session, in 0.4.2+ * - spark.databricks.labs.mosaic.raster.tmp.prefix - "" (will use "/tmp") - Local directory for workers * - spark.databricks.labs.mosaic.raster.blocksize - "128" - Blocksize in pixels, see :ref:`rst_convolve` and :ref:`rst_filter` for more + +GDAL is configured as follows in `MosaicGDAL `__ class: + +.. list-table:: + :widths: 50 50 + :header-rows: 1 + + * - Config + - Value + * - GDAL_VRT_ENABLE_PYTHON + - "YES" + * - GDAL_DISABLE_READDIR_ON_OPEN + - "TRUE" + * - CPL_TMPDIR + - "" + * - GDAL_PAM_PROXY_DIR + - "" + * - GDAL_PAM_ENABLED + - "YES" + * - CPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE + - "NO" + * - CPL_LOG + - "/gdal.log" + * - GDAL_CACHEMAX + - "512" + * - GDAL_NUM_THREADS + - "ALL_CPUS" \ No newline at end of file diff --git a/docs/source/usage/installation.rst b/docs/source/usage/installation.rst index d1cf54d1e..1dbf81fb2 100644 --- a/docs/source/usage/installation.rst +++ b/docs/source/usage/installation.rst @@ -5,8 +5,11 @@ Installation guide Supported platforms ################### -.. note:: - For Mosaic 0.4 series, we recommend DBR 13.3 LTS on Photon or ML Runtime clusters. +.. warning:: + For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic + has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts + with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. + Mosaic 0.4.2 release will pin the geopandas version. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: @@ -113,9 +116,9 @@ The mechanism for enabling the Mosaic functions varies by language: enableMosaic() .. note:: - We recommend use of `import mosaic as mos` to namespace the python api and avoid any conflicts with other similar - functions. By default, the python import will handle installing the JAR and registering Hive UDFs which is suitable - for Assigned (vs Shared Access) clusters. + We recommend use of **import mosaic as mos** to namespace the python api and avoid any conflicts with other similar + functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are + suitable for Assigned (vs Shared Access) clusters. Unless you are specially adding the JAR to your cluster (outside :code:`%pip` or the WHL file), please always initialize with Python first, then you can initialize Scala (after the JAR has been auto-attached by python); otherwise, you don't @@ -139,13 +142,27 @@ confs as well as through extra params in Mosaic 0.4.x series :code:`enable_mosai :type jar_autoattach: bool :rtype: None -Users can control various aspects of Mosaic's operation with the following Spark confs: - - * :code:`"spark.databricks.labs.mosaic.jar.autoattach"` - Automatically attach the Mosaic JAR to the Databricks cluster (Optional, default is "true"). - * :code:`"spark.databricks.labs.mosaic.jar.path"` - Explicitly specify the path to the Mosaic JAR (Optional and not required at all in a standard Databricks environment). - * :code:`"spark.databricks.labs.mosaic.geometry.api"` - Explicitly specify the underlying geometry library to use for spatial operations (Optional, default is "JTS"). - * :code:`"spark.databricks.labs.mosaic.index.system"` - Explicitly specify the index system to use for optimized spatial joins (Optional, default is "H3"). - +Users can control various aspects of Mosaic's operation with the following optional Spark session configs: + +.. list-table:: + :widths: 25 25 50 + :header-rows: 1 + + * - Config + - Default + - Comments + * - spark.databricks.labs.mosaic.jar.autoattach + - "true" + - Automatically attach the Mosaic JAR to the Databricks cluster? + * - spark.databricks.labs.mosaic.jar.path + - "" + - Path to the Mosaic JAR, not required in standard installs + * - spark.databricks.labs.mosaic.geometry.api + - "JTS" + - Geometry library to use for spatial operations, only option in 0.4 series + * - spark.databricks.labs.mosaic.index.system + - "H3" + - Index system to use SQL usage ********* @@ -162,5 +179,5 @@ register the Mosaic SQL functions in your SparkSession from a Scala notebook cel mosaicContext.register(spark) .. warning:: - Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Hive UDFs), but not Shared Access due + Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due to `Unity Catalog `_ API changes, more `here `_. diff --git a/pom.xml b/pom.xml index 899db797c..8d4a8abf7 100644 --- a/pom.xml +++ b/pom.xml @@ -120,6 +120,7 @@ gdal 3.4.0 + @@ -145,6 +146,27 @@ + + org.scoverage + scoverage-maven-plugin + 2.0.2 + + + scoverage-report + package + + check + report-only + + + + + ${minimum.coverage} + true + ${scala.version} + skipTests=false + + net.alchim31.maven @@ -258,43 +280,6 @@ 3.4.0 0.4.2 - - - - org.scoverage - scoverage-maven-plugin - 2.0.2 - - - scoverage-report - package - - check - report-only - - - - - ${minimum.coverage} - true - ${scala.version} - skipTests=false - - - - - - - - skipScoverage - - 2.12.10 - 2.12 - 3.4.0 - 0.4.2 - 1.8 - 1.8 - diff --git a/python/mosaic/api/fuse.py b/python/mosaic/api/fuse.py index 588cc3144..e4b09dd73 100644 --- a/python/mosaic/api/fuse.py +++ b/python/mosaic/api/fuse.py @@ -164,7 +164,7 @@ def configure(self, test_mode: bool = False) -> bool: print("\n") if not any(resource_statuses) or all( - value == 200 for value in resource_statuses.values() + value == 200 for value in resource_statuses.values() ): return True else: @@ -172,11 +172,11 @@ def configure(self, test_mode: bool = False) -> bool: def setup_fuse_install( - to_fuse_dir: str, - script_out_name: str = "mosaic-fuse-init.sh", - jar_copy: bool = True, - jni_so_copy: bool = True, - test_mode: bool = False + to_fuse_dir: str, + script_out_name: str = "mosaic-fuse-init.sh", + jar_copy: bool = True, + jni_so_copy: bool = True, + test_mode: bool = False ) -> bool: """ [1] if `jar_copy=True` diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 426a01831..57c0e10f6 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -3,14 +3,14 @@ import subprocess -__all__ = ["setup_gdal", "enable_gdal", "is_use_checkpoint", "get_checkpoint_path"] +__all__ = ["setup_gdal", "enable_gdal"] def setup_gdal( - to_fuse_dir: str = "/Workspace/Shared/geospatial/mosaic/gdal/jammy/0.4.2", - script_out_name: str = "mosaic-gdal-init.sh", - jni_so_copy: bool = False, - test_mode: bool = False + to_fuse_dir: str = "/Workspace/Shared/geospatial/mosaic/gdal/jammy/0.4.2", + script_out_name: str = "mosaic-gdal-init.sh", + jni_so_copy: bool = False, + test_mode: bool = False ) -> bool: """ Prepare GDAL init script and shared objects required for GDAL to run on spark. @@ -50,7 +50,7 @@ def setup_gdal( return setup_mgr.configure(test_mode=test_mode) -def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: +def enable_gdal(spark: SparkSession) -> None: """ Enable GDAL at runtime on a cluster with GDAL installed using init script, e.g. generated by setup_gdal() or setup_fuse_install() call. @@ -59,26 +59,18 @@ def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: ---------- spark : pyspark.sql.SparkSession The active SparkSession. - with_checkpoint_path : str - Optional, enable checkpointing; - default is None. Returns ------- + """ try: sc = spark.sparkContext mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - if with_checkpoint_path: - mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) - else: - mosaicGDALObject.enableGDAL(spark._jsparkSession) - + mosaicGDALObject.enableGDAL(spark._jsparkSession) print("GDAL enabled.\n") - if with_checkpoint_path: - print(f"checkpoint path '{with_checkpoint_path}' configured for this session.") result = subprocess.run(["gdalinfo", "--version"], stdout=subprocess.PIPE) print(result.stdout.decode() + "\n") except Exception as e: @@ -86,25 +78,9 @@ def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: "GDAL not enabled. Mosaic with GDAL requires that GDAL be installed on the cluster.\n" ) print( - "You can run `setup_gdal()` or `setup_fuse_install()` to generate the init script for GDAL install.\n" + "You can run setup_gdal() or setup_fuse_install() to generate the init script for install GDAL install.\n" ) print( - "After the init script is generated, you need to add it to your cluster and restart.\n" + "After the init script is generated, you need to add the init script to your cluster and restart to complete the setup.\n" ) print("Error: " + str(e)) - - -def is_use_checkpoint(spark: SparkSession) -> bool: - sc = spark.sparkContext - mosaicGDALObject = getattr( - sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" - ) - return mosaicGDALObject.isUseCheckpoint() - - -def get_checkpoint_path(spark: SparkSession) -> str: - sc = spark.sparkContext - mosaicGDALObject = getattr( - sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" - ) - return mosaicGDALObject.getCheckpointPath() diff --git a/python/setup.cfg b/python/setup.cfg index 167a57389..298663a38 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -18,10 +18,11 @@ classifiers = packages = find: python_requires = >=3.10.0 install_requires = - keplergl==0.3.2 + geopandas<0.14.4,>=0.14 h3<4.0,>=3.7 - pyspark<3.5,>=3.4 ipython>=7.22.0 + keplergl==0.3.2 + pyspark<3.5,>=3.4 [options.package_data] mosaic = diff --git a/python/test/test_gdal_install.py b/python/test/test_gdal_install.py index 16690a37c..5b8117566 100644 --- a/python/test/test_gdal_install.py +++ b/python/test/test_gdal_install.py @@ -13,11 +13,3 @@ def test_setup_gdal(self): self.fail("Copying objects with `setup_gdal()` raised an exception.") self.assertEqual(len(installer.list_files()),1) # <- init script - - # try: - # installer_result = installer.run_init_script() - # self.assertEqual(installer_result, 0) - # gdalinfo_result = installer.test_gdalinfo() - # self.assertEqual(gdalinfo_result, "GDAL 3.4.1, released 2021/12/27\n") - # except Exception: - # self.fail("Execution of GDAL init script raised an exception.") diff --git a/python/test/utils/setup_gdal.py b/python/test/utils/setup_gdal.py index 6786309c7..7dab60179 100644 --- a/python/test/utils/setup_gdal.py +++ b/python/test/utils/setup_gdal.py @@ -1,6 +1,5 @@ import os import shutil -import subprocess import tempfile from pkg_resources import working_set, Requirement @@ -24,21 +23,5 @@ def do_op(self) -> bool: test_mode=True ) - # def run_init_script(self) -> int: - # gdal_install_script_target = os.path.join( - # self._temp_dir, self.GDAL_INIT_SCRIPT_FILENAME - # ) - # os.chmod(gdal_install_script_target, mode=0x744) - # result = subprocess.run( - # [gdal_install_script_target], - # stdout=subprocess.DEVNULL, - # env=dict(os.environ, DATABRICKS_ROOT_VIRTUALENV_ENV=self._site_packages), - # ) - # return result.returncode - def list_files(self) -> list[str]: return os.listdir(self._temp_dir) - - # def test_gdalinfo(self) -> str: - # result = subprocess.run(["gdalinfo", "--version"], stdout=subprocess.PIPE) - # return result.stdout.decode() diff --git a/scripts/mosaic-gdal-init.sh b/scripts/mosaic-gdal-init.sh index 12c55c034..a899c7cb2 100644 --- a/scripts/mosaic-gdal-init.sh +++ b/scripts/mosaic-gdal-init.sh @@ -24,11 +24,11 @@ MOSAIC_PIP_VERSION='__MOSAIC_PIP_VERSION__' # CONDITIONAL LOGIC WITH_MOSAIC=0 # <- pip install mosaic? WITH_GDAL=0 # <- install gdal? -WITH_UBUNTUGIS=0 # <- use ubuntugis ppa? -WITH_FUSE_SO=0 # <- use fuse dir shared objects (vs wget) +WITH_UBUNTUGIS=0 # <- use ubuntugis ppa, now ignored! +WITH_FUSE_SO=0 # <- use fuse dir shared objects (vs wget) -# SPECIFIED VERSIONS -GDAL_VERSION=3.4.1 # <- ubuntugis is 3.4.3 +# SPECIFIED VERSIONS +GDAL_VERSION=3.4.1 # - optional: install GDAL if [ $WITH_GDAL == 1 ] @@ -57,7 +57,6 @@ then sudo cp -n $FUSE_DIR/libgdalalljni.so.30.0.3 /usr/lib else # copy from github - # TODO: in v0.4.1, include $GITHUB_VERSION GITHUB_REPO_PATH=databrickslabs/mosaic/main/resources/gdal/jammy sudo wget -nv -P /usr/lib -nc https://raw.githubusercontent.com/$GITHUB_REPO_PATH/libgdalalljni.so sudo wget -nv -P /usr/lib -nc https://raw.githubusercontent.com/$GITHUB_REPO_PATH/libgdalalljni.so.30 diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index a9acb1f83..d840a3205 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -50,21 +50,6 @@ object GDAL { /** @return Returns the name of the raster API. */ def name: String = "GDAL" - /** @return Returns whether using checkpoint (assumes `enable` called) */ - def isUseCheckpoint: Boolean = { - MosaicGDAL.isUseCheckpoint - } - - /** @return Returns checkpoint path (assumes `enable` called) */ - def getCheckpointPath: String = { - MosaicGDAL.getCheckpointPath - } - - def enable(spark: SparkSession): Unit = { - val mosaicConfig = MosaicExpressionConfig(spark) - enable(mosaicConfig) - } - /** * Enables GDAL on the worker nodes. GDAL requires drivers to be registered * on the worker nodes. This method registers all the drivers on the worker @@ -76,34 +61,55 @@ object GDAL { gdal.AllRegister() } + def enable(spark: SparkSession): Unit = { + val mosaicConfig = MosaicExpressionConfig(spark) + enable(mosaicConfig) + } + /** - * Reads a raster from the given input data. - * - If it is a byte array, it will read the raster from the byte array. - * - If it is a string, it will read the raster from the path. - * - Path may be a zip file. - * - Path may be a subdataset. - * - * @param inputRaster - * The raster, based on inputDT. Path based rasters with subdatasets - * are supported. - * @param createInfo - * Mosaic creation info of the raster. Note: This is not the same as the - * metadata of the raster. This is not the same as GDAL creation options. - * @param inputDT - * [[DataType]] for the raster, either [[StringType]] or [[BinaryType]]. + * Returns the extension of the given driver. + * @param driverShortName + * The short name of the driver. For example, GTiff. * @return - * Returns a [[MosaicRasterGDAL]] object. + * Returns the extension of the driver. For example, tif. */ + def getExtension(driverShortName: String): String = { + val driver = gdal.GetDriverByName(driverShortName) + val result = driver.GetMetadataItem("DMD_EXTENSION") + val toReturn = if (result == null) FormatLookup.formats(driverShortName) else result + driver.delete() + toReturn + } + + /** + * Reads a raster from the given input data. + * - If it is a byte array, it will read the raster from the byte array. + * - If it is a string, it will read the raster from the path. + * - Path may be a zip file. + * - Path may be a subdataset. + * + * @param inputRaster + * The raster, based on inputDT. Path based rasters with subdatasets + * are supported. + * @param createInfo + * Mosaic creation info of the raster. Note: This is not the same as the + * metadata of the raster. This is not the same as GDAL creation options. + * @param inputDT + * [[DataType]] for the raster, either [[StringType]] or [[BinaryType]]. + * @return + * Returns a [[MosaicRasterGDAL]] object. + */ def readRaster( - inputRaster: Any, - createInfo: Map[String, String], - inputDT: DataType - ): MosaicRasterGDAL = { + inputRaster: Any, + createInfo: Map[String, String], + inputDT: DataType + ): MosaicRasterGDAL = { if (inputRaster == null) { MosaicRasterGDAL(null, createInfo, -1) } else { inputDT match { - case _: StringType => MosaicRasterGDAL.readRaster(createInfo) + case _: StringType => + MosaicRasterGDAL.readRaster(createInfo) case _: BinaryType => val bytes = inputRaster.asInstanceOf[Array[Byte]] try { @@ -136,32 +142,25 @@ object GDAL { } } - private def writeRasterString(raster: MosaicRasterGDAL): UTF8String = { - val uuid = UUID.randomUUID().toString - val extension = GDAL.getExtension(raster.getDriversShortName) - val writePath = s"${getCheckpointPath}/$uuid.$extension" - val outPath = raster.writeToPath(writePath) - RasterCleaner.dispose(raster) - UTF8String.fromString(outPath) - } - /** * Writes the given rasters to either a path or a byte array. * * @param generatedRasters * The rasters to write. - * @param rasterDT - * The type of raster to write. - * - if string write to checkpoint - * - otherwise, write to bytes * @return - * Returns the written rasters (bytes or string). + * Returns the paths of the written rasters. */ def writeRasters(generatedRasters: Seq[MosaicRasterGDAL], rasterDT: DataType): Seq[Any] = { generatedRasters.map(raster => if (raster != null) { rasterDT match { - case StringType => writeRasterString(raster) + case StringType => + val uuid = UUID.randomUUID().toString + val extension = GDAL.getExtension(raster.getDriversShortName) + val writePath = s"${MosaicGDAL.checkpointPath}/$uuid.$extension" + val outPath = raster.writeToPath(writePath) + RasterCleaner.dispose(raster) + UTF8String.fromString(outPath) case BinaryType => val bytes = raster.writeToBytes() RasterCleaner.dispose(raster) @@ -173,21 +172,6 @@ object GDAL { ) } - /** - * Returns the extension of the given driver. - * @param driverShortName - * The short name of the driver. For example, GTiff. - * @return - * Returns the extension of the driver. For example, tif. - */ - def getExtension(driverShortName: String): String = { - val driver = gdal.GetDriverByName(driverShortName) - val result = driver.GetMetadataItem("DMD_EXTENSION") - val toReturn = if (result == null) FormatLookup.formats(driverShortName) else result - driver.delete() - toReturn - } - /** * Reads a raster from the given path. Assume not zipped file. If zipped, * use raster(path, vsizip = true) @@ -195,10 +179,8 @@ object GDAL { * @param path * The path to the raster. This path has to be a path to a single raster. * Rasters with subdatasets are supported. - * @param parentPath - * Parent path can help with detecting driver. * @return - * Returns a [[MosaicRasterGDAL]] object. + * Returns a Raster object. */ def raster(path: String, parentPath: String): MosaicRasterGDAL = { val createInfo = Map("path" -> path, "parentPath" -> parentPath) @@ -211,12 +193,8 @@ object GDAL { * * @param content * The byte array to read the raster from. - * @param parentPath - * Parent path can help with detecting driver. - * @param driverShortName - * Driver to use in reading. * @return - * Returns a [[MosaicRasterGDAL]] object. + * Returns a Raster object. */ def raster(content: Array[Byte], parentPath: String, driverShortName: String): MosaicRasterGDAL = { val createInfo = Map("parentPath" -> parentPath, "driver" -> driverShortName) @@ -232,10 +210,8 @@ object GDAL { * Rasters with subdatasets are supported. * @param bandIndex * The index of the band to read from the raster. - * @param parentPath - * Parent path can help with detecting driver. * @return - * Returns a [[MosaicRasterBandGDAL]] object. + * Returns a Raster band object. */ def band(path: String, bandIndex: Int, parentPath: String): MosaicRasterBandGDAL = { val createInfo = Map("path" -> path, "parentPath" -> parentPath) diff --git a/src/main/scala/com/databricks/labs/mosaic/package.scala b/src/main/scala/com/databricks/labs/mosaic/package.scala index 32b8086d6..7b5f1da73 100644 --- a/src/main/scala/com/databricks/labs/mosaic/package.scala +++ b/src/main/scala/com/databricks/labs/mosaic/package.scala @@ -22,8 +22,6 @@ package object mosaic { val MOSAIC_GDAL_NATIVE = "spark.databricks.labs.mosaic.gdal.native" val MOSAIC_RASTER_CHECKPOINT = "spark.databricks.labs.mosaic.raster.checkpoint" val MOSAIC_RASTER_CHECKPOINT_DEFAULT = "/dbfs/tmp/mosaic/raster/checkpoint" - val MOSAIC_RASTER_USE_CHECKPOINT = "spark.databricks.labs.mosaic.raster.use.checkpoint" - val MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT = "false" val MOSAIC_RASTER_TMP_PREFIX = "spark.databricks.labs.mosaic.raster.tmp.prefix" val MOSAIC_RASTER_BLOCKSIZE = "spark.databricks.labs.mosaic.raster.blocksize" val MOSAIC_RASTER_BLOCKSIZE_DEFAULT = "128" @@ -36,6 +34,7 @@ package object mosaic { val MOSAIC_NO_DRIVER = "no_driver" val MOSAIC_TEST_MODE = "spark.databricks.labs.mosaic.test.mode" + def read: MosaicDataFrameReader = new MosaicDataFrameReader(SparkSession.builder().getOrCreate()) } diff --git a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala index 8a8f9959b..a371a1ed5 100644 --- a/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala +++ b/src/test/scala/com/databricks/labs/mosaic/expressions/raster/RST_FilterBehaviors.scala @@ -66,7 +66,7 @@ trait RST_FilterBehaviors extends QueryTest { gridTiles6.length should be(1) rastersInMemory.createOrReplaceTempView("source") - + noException should be thrownBy spark .sql(""" |select rst_filter(tile, 3, 'mode') as tile from source diff --git a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala index 95f71978f..9aa152cee 100644 --- a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala +++ b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala @@ -2,7 +2,7 @@ package org.apache.spark.sql.test import com.databricks.labs.mosaic.gdal.MosaicGDAL import com.databricks.labs.mosaic.utils.FileUtils -import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT, MOSAIC_TEST_MODE} +import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_TEST_MODE} import org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession import org.gdal.gdal.gdal @@ -23,7 +23,7 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { conf.set(MOSAIC_RASTER_CHECKPOINT, FileUtils.createMosaicTempDir(prefix = "/mnt/")) SparkSession.cleanupAnyExistingSession() val session = new MosaicTestSparkSession(conf) - session.sparkContext.setLogLevel("ERROR") + session.sparkContext.setLogLevel("FATAL") Try { MosaicGDAL.enableGDAL(session) } @@ -32,7 +32,6 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { override def beforeEach(): Unit = { super.beforeEach() - sparkConf.set(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT) MosaicGDAL.enableGDAL(this.spark) gdal.AllRegister() } From 0387a12190136f81b33973861567f2a8f2dc5ce6 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 13 May 2024 16:59:36 -0400 Subject: [PATCH 20/38] additional docs, use pathlib for writing script. (cherry picked from commit f4245d13740ceda51fcc3fd40229ec7cdc677b93) --- README.md | 18 ++++--- docs/source/index.rst | 84 +++++++++++++----------------- docs/source/usage/installation.rst | 44 ++++++++-------- python/mosaic/api/fuse.py | 6 +-- 4 files changed, 72 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index 84d937e6c..9b6deb3bf 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,8 @@ The supported languages are Scala, Python, R, and SQL. ## How does it work? -The Mosaic library is written in Scala (JVM) to guarantee maximum performance with Spark and when possible, it uses code generation to give an extra performance boost. +The Mosaic library is written in Scala (JVM) to guarantee maximum performance with Spark and when possible, +it uses code generation to give an extra performance boost. __The other supported languages (Python, R and SQL) are thin wrappers around the Scala (JVM) code.__ @@ -44,9 +45,9 @@ Image1: Mosaic logical design. :warning: **geopandas 0.14.4 not supported** For Mosaic <= 0.4.1 `%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic -has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts -with the limits of scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. -Mosaic 0.4.2 release will pin the geopandas version. +left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of +scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. +Mosaic 0.4.2+ limits the geopandas version. ### Mosaic 0.4.x Series [Latest] @@ -62,10 +63,13 @@ We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. __Language Bindings__ -As of Mosaic 0.4.0 (subject to change in follow-on releases)... +As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases)... -* [Assigned Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes): Mosaic Python, SQL, R, and Scala APIs. -* [Shared Access Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes): Mosaic Scala API (JVM) with Admin [allowlisting](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/allowlist.html); _Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters._ +* [Assigned Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes) + * Mosaic Python, SQL, R, and Scala APIs. +* [Shared Access Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes) + * Mosaic Scala API (JVM) with Admin [allowlisting](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/allowlist.html). + * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. * Mosaic SQL expressions cannot yet be registered with [Unity Catalog](https://www.databricks.com/product/unity-catalog) due to API changes affecting DBRs >= 13, more [here](https://docs.databricks.com/en/udf/index.html). __Additional Notes:__ diff --git a/docs/source/index.rst b/docs/source/index.rst index 8859a1688..76bda6fb6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -29,76 +29,64 @@ :target: https://github.com/databrickslabs/mosaic/actions/workflows/docs.yml :alt: Mosaic sphinx docs - .. image:: https://img.shields.io/lgtm/grade/python/g/databrickslabs/mosaic.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/databrickslabs/mosaic/context:python - :alt: Language grade: Python - .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: black - - -Mosaic is an extension to the `Apache Spark `_ framework that allows easy and fast processing of very large geospatial datasets. - -We currently recommend using Databricks Runtime with Photon enabled; -this will leverage the Databricks H3 expressions when using H3 grid system. - -Mosaic provides: - -* easy conversion between common spatial data encodings (WKT, WKB and GeoJSON); -* constructors to easily generate new geometries from Spark native data types; -* many of the OGC SQL standard :code:`ST_` functions implemented as Spark Expressions for transforming, aggregating and joining spatial datasets; -* high performance through implementation of Spark code generation within the core Mosaic functions; -* optimisations for performing point-in-polygon joins using an approach we co-developed with Ordnance Survey (`blog post `_); and -* the choice of a Scala, SQL and Python API. - -.. warning:: - For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic - has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts - with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. - Mosaic 0.4.2 release will pin the geopandas version. +| Mosaic is an extension to the `Apache Spark `_ framework for fast + easy processing + of very large geospatial datasets. It provides: +| +| [1] The choice of a Scala, SQL and Python language bindings (written in Scala). +| [2] Raster and Vector APIs. +| [3] Easy conversion between common spatial data encodings (WKT, WKB and GeoJSON). +| [4] Constructors to easily generate new geometries from Spark native data types. +| [5] Many of the OGC SQL standard :code:`ST_` functions implemented as Spark Expressions for transforming, +| aggregating and joining spatial datasets. +| [6] High performance through implementation of Spark code generation within the core Mosaic functions. +| [7] Performing point-in-polygon joins using an approach we co-developed with Ordnance Survey + (`blog post `_). .. note:: - For Mosaic versions < 0.4 please use the `0.3 docs `_. + We recommend using Databricks Runtime with Photon enabled to leverage the Databricks H3 expressions. Version 0.4.x Series ==================== -We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. +.. warning:: + For Mosaic <= 0.4.1 :code:`%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic + left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of + scikit-learn in DBRs. The workaround is :code:`%pip install geopandas==0.14.3 databricks-mosaic`. + Mosaic 0.4.2+ limits the geopandas version. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: - DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. - You can specify `%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. + DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. + You can specify :code:`%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. Mosaic 0.4.x series issues an ERROR on standard, non-Photon clusters `ADB `_ | `AWS `_ | `GCP `_: - DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for - spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for + spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. -As of Mosaic 0.4.0 (subject to change in follow-on releases) +As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): -* `Assigned Clusters `_: Mosaic Python, SQL, R, and Scala APIs. -* `Shared Access Clusters `_: Mosaic Scala API (JVM) with - Admin `allowlisting `_; - Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. - -.. warning:: - Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due - to `Unity Catalog `_ API changes, more `here `_. +* `Assigned Clusters `_ + * Mosaic Python, SQL, R, and Scala APIs. +* `Shared Access Clusters `_ + * Mosaic Scala API (JVM) with Admin `allowlisting `_. + * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. + * Mosaic SQL expressions cannot yet be registered due to `Unity Catalog `_. + API changes, more `here `_. .. note:: - As of Mosaic 0.4.0 (subject to change in follow-on releases) - * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Along the same principle of isolation, clusters (both Assigned and Shared Access) can read - `Volumes `_ via relevant built-in readers and - writers or via custom python calls which do not involve any custom JVM code. + * Clusters (both Assigned and Shared Access) can read `Volumes `_ + via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. + Version 0.3.x Series ==================== @@ -106,9 +94,6 @@ Version 0.3.x Series We recommend using Databricks Runtime versions 12.2 LTS with Photon enabled. For Mosaic versions < 0.4.0 please use the `0.3.x docs `_. -.. warning:: - Mosaic 0.3.x series does not support DBR 13.x DBRs. - As of the 0.3.11 release, Mosaic issues the following WARNING when initialized on a cluster that is neither Photon Runtime nor Databricks Runtime ML `ADB `_ | `AWS `_ | @@ -122,6 +107,9 @@ making this change is that we are streamlining Mosaic internals to be more align powered by Photon. Along this direction of change, Mosaic has standardized to JTS as its default and supported Vector Geometry Provider. +.. note:: + For Mosaic versions < 0.4 please use the `0.3 docs `_. + Documentation ============= diff --git a/docs/source/usage/installation.rst b/docs/source/usage/installation.rst index 1dbf81fb2..af29f0337 100644 --- a/docs/source/usage/installation.rst +++ b/docs/source/usage/installation.rst @@ -6,39 +6,39 @@ Supported platforms ################### .. warning:: - For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic - has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts - with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. - Mosaic 0.4.2 release will pin the geopandas version. + For Mosaic <= 0.4.1 :code:`%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic + left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of + scikit-learn in DBRs. The workaround is :code:`%pip install geopandas==0.14.3 databricks-mosaic`. + Mosaic 0.4.2+ limits the geopandas version. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: - DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. - You can specify `%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. + DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. + You can specify :code:`%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. Mosaic 0.4.x series issues an ERROR on standard, non-Photon clusters `ADB `_ | `AWS `_ | `GCP `_: - DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for - spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for + spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. -As of Mosaic 0.4.0 (subject to change in follow-on releases) +As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): -* `Assigned Clusters `_: Mosaic Python, SQL, R, and Scala APIs. -* `Shared Access Clusters `_: Mosaic Scala API (JVM) with - Admin `allowlisting `_; - Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. +* `Assigned Clusters `_ + * Mosaic Python, SQL, R, and Scala APIs. +* `Shared Access Clusters `_ + * Mosaic Scala API (JVM) with Admin `allowlisting `_. + * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. + * Mosaic SQL expressions cannot yet be registered due to `Unity Catalog `_. + API changes, more `here `_. .. note:: - As of Mosaic 0.4.0 (subject to change in follow-on releases) - * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Along the same principle of isolation, clusters (both assigned and shared access) can read - `Volumes `_ via relevant built-in readers and - writers or via custom python calls which do not involve any custom JVM code. + * Clusters (both Assigned and Shared Access) can read `Volumes `_ + via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. If you have cluster creation permissions in your Databricks workspace, you can create a cluster using the instructions @@ -116,9 +116,11 @@ The mechanism for enabling the Mosaic functions varies by language: enableMosaic() .. note:: - We recommend use of **import mosaic as mos** to namespace the python api and avoid any conflicts with other similar - functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are - suitable for Assigned (vs Shared Access) clusters. + * We recommend use of :code:`import mosaic as mos` to namespace the python api and avoid any conflicts with other similar + functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are + suitable for Assigned (vs Shared Access) clusters. + * It is possible to initialize python bindings without providing :code:`dbutils`; if you do this, :code:`%%mosaic_kepler` + won't be able to render maps in notebooks. Unless you are specially adding the JAR to your cluster (outside :code:`%pip` or the WHL file), please always initialize with Python first, then you can initialize Scala (after the JAR has been auto-attached by python); otherwise, you don't diff --git a/python/mosaic/api/fuse.py b/python/mosaic/api/fuse.py index e4b09dd73..607e311db 100644 --- a/python/mosaic/api/fuse.py +++ b/python/mosaic/api/fuse.py @@ -27,8 +27,6 @@ def configure(self, test_mode: bool = False) -> bool: # volumes must be pre-generated in unity catalog os.makedirs(self.to_fuse_dir, exist_ok=True) - script_out_path = f"{self.to_fuse_dir}/{self.script_out_name}" - # - start with the un-configured script (from repo) # this is using a different (repo) folder in 0.4.2+ (to allow prior versions to work) GITHUB_CONTENT_TAG_URL = "https://raw.githubusercontent.com/databrickslabs/mosaic/main" @@ -64,8 +62,8 @@ def configure(self, test_mode: bool = False) -> bool: ) # - write the configured init script - with open(script_out_path, "w") as file: - file.write(script) + script_out_path = Path(self.to_fuse_dir) / self.script_out_name + script_out_path.write_text(script, encoding='utf-8') # --- end of script config --- From e1a27545e60b1507b1b0e5d00f771fb7ecd69430 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 14 May 2024 10:37:35 -0400 Subject: [PATCH 21/38] clarify custom JVM vs built-in language in docs. (cherry picked from commit 49a73662b537ea8ff36ba7b183342b41482285f8) --- README.md | 4 ++-- docs/source/index.rst | 6 ++++-- docs/source/usage/installation.rst | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9b6deb3bf..70827dc9a 100644 --- a/README.md +++ b/README.md @@ -74,10 +74,10 @@ As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases)... __Additional Notes:__ -As of Mosaic 0.4.0 (subject to change in follow-on releases)... +Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: 1. [Unity Catalog](https://www.databricks.com/product/unity-catalog): Enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. -2. [Volumes](https://docs.databricks.com/en/connect/unity-catalog/volumes.html): Along the same principle of isolation, clusters (both assigned and shared access) can read Volumes via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. +2. [Volumes](https://docs.databricks.com/en/connect/unity-catalog/volumes.html): Along the same principle of isolation, clusters can read Volumes via relevant built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. ### Mosaic 0.3.x Series diff --git a/docs/source/index.rst b/docs/source/index.rst index 76bda6fb6..d9b62490b 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -81,11 +81,13 @@ As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): API changes, more `here `_. .. note:: + Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: + * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Clusters (both Assigned and Shared Access) can read `Volumes `_ - via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. + * Clusters can read `Volumes `_ via relevant + built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. Version 0.3.x Series diff --git a/docs/source/usage/installation.rst b/docs/source/usage/installation.rst index af29f0337..cdeeba4d0 100644 --- a/docs/source/usage/installation.rst +++ b/docs/source/usage/installation.rst @@ -34,11 +34,13 @@ As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): API changes, more `here `_. .. note:: + Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: + * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Clusters (both Assigned and Shared Access) can read `Volumes `_ - via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. + * Clusters can read `Volumes `_ via relevant + built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. If you have cluster creation permissions in your Databricks workspace, you can create a cluster using the instructions From 7dc5b132d0420b7fc2a0ba986be7a892935271a2 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 13 May 2024 10:12:37 -0400 Subject: [PATCH 22/38] pin geopandas ver pinned to 0.14, h3 ver pinned to 3.7, deserialization fix, long-running test fix, streamline gdal and fuse setup. (cherry picked from commit 8ab2bb82457be3c796801383bd9a1f2ab97d27b3) --- README.md | 22 ++++---- docs/source/index.rst | 84 +++++++++++++++++------------- docs/source/usage/installation.rst | 44 +++++++--------- python/mosaic/api/fuse.py | 6 ++- 4 files changed, 80 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index 70827dc9a..84d937e6c 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,7 @@ The supported languages are Scala, Python, R, and SQL. ## How does it work? -The Mosaic library is written in Scala (JVM) to guarantee maximum performance with Spark and when possible, -it uses code generation to give an extra performance boost. +The Mosaic library is written in Scala (JVM) to guarantee maximum performance with Spark and when possible, it uses code generation to give an extra performance boost. __The other supported languages (Python, R and SQL) are thin wrappers around the Scala (JVM) code.__ @@ -45,9 +44,9 @@ Image1: Mosaic logical design. :warning: **geopandas 0.14.4 not supported** For Mosaic <= 0.4.1 `%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic -left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of -scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. -Mosaic 0.4.2+ limits the geopandas version. +has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts +with the limits of scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. +Mosaic 0.4.2 release will pin the geopandas version. ### Mosaic 0.4.x Series [Latest] @@ -63,21 +62,18 @@ We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. __Language Bindings__ -As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases)... +As of Mosaic 0.4.0 (subject to change in follow-on releases)... -* [Assigned Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes) - * Mosaic Python, SQL, R, and Scala APIs. -* [Shared Access Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes) - * Mosaic Scala API (JVM) with Admin [allowlisting](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/allowlist.html). - * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. +* [Assigned Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes): Mosaic Python, SQL, R, and Scala APIs. +* [Shared Access Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes): Mosaic Scala API (JVM) with Admin [allowlisting](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/allowlist.html); _Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters._ * Mosaic SQL expressions cannot yet be registered with [Unity Catalog](https://www.databricks.com/product/unity-catalog) due to API changes affecting DBRs >= 13, more [here](https://docs.databricks.com/en/udf/index.html). __Additional Notes:__ -Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: +As of Mosaic 0.4.0 (subject to change in follow-on releases)... 1. [Unity Catalog](https://www.databricks.com/product/unity-catalog): Enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. -2. [Volumes](https://docs.databricks.com/en/connect/unity-catalog/volumes.html): Along the same principle of isolation, clusters can read Volumes via relevant built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. +2. [Volumes](https://docs.databricks.com/en/connect/unity-catalog/volumes.html): Along the same principle of isolation, clusters (both assigned and shared access) can read Volumes via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. ### Mosaic 0.3.x Series diff --git a/docs/source/index.rst b/docs/source/index.rst index d9b62490b..8859a1688 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -29,66 +29,76 @@ :target: https://github.com/databrickslabs/mosaic/actions/workflows/docs.yml :alt: Mosaic sphinx docs + .. image:: https://img.shields.io/lgtm/grade/python/g/databrickslabs/mosaic.svg?logo=lgtm&logoWidth=18 + :target: https://lgtm.com/projects/g/databrickslabs/mosaic/context:python + :alt: Language grade: Python + .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: black -| Mosaic is an extension to the `Apache Spark `_ framework for fast + easy processing - of very large geospatial datasets. It provides: -| -| [1] The choice of a Scala, SQL and Python language bindings (written in Scala). -| [2] Raster and Vector APIs. -| [3] Easy conversion between common spatial data encodings (WKT, WKB and GeoJSON). -| [4] Constructors to easily generate new geometries from Spark native data types. -| [5] Many of the OGC SQL standard :code:`ST_` functions implemented as Spark Expressions for transforming, -| aggregating and joining spatial datasets. -| [6] High performance through implementation of Spark code generation within the core Mosaic functions. -| [7] Performing point-in-polygon joins using an approach we co-developed with Ordnance Survey - (`blog post `_). + + +Mosaic is an extension to the `Apache Spark `_ framework that allows easy and fast processing of very large geospatial datasets. + +We currently recommend using Databricks Runtime with Photon enabled; +this will leverage the Databricks H3 expressions when using H3 grid system. + +Mosaic provides: + +* easy conversion between common spatial data encodings (WKT, WKB and GeoJSON); +* constructors to easily generate new geometries from Spark native data types; +* many of the OGC SQL standard :code:`ST_` functions implemented as Spark Expressions for transforming, aggregating and joining spatial datasets; +* high performance through implementation of Spark code generation within the core Mosaic functions; +* optimisations for performing point-in-polygon joins using an approach we co-developed with Ordnance Survey (`blog post `_); and +* the choice of a Scala, SQL and Python API. + +.. warning:: + For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic + has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts + with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. + Mosaic 0.4.2 release will pin the geopandas version. .. note:: - We recommend using Databricks Runtime with Photon enabled to leverage the Databricks H3 expressions. + For Mosaic versions < 0.4 please use the `0.3 docs `_. Version 0.4.x Series ==================== -.. warning:: - For Mosaic <= 0.4.1 :code:`%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic - left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of - scikit-learn in DBRs. The workaround is :code:`%pip install geopandas==0.14.3 databricks-mosaic`. - Mosaic 0.4.2+ limits the geopandas version. +We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: - DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. - You can specify :code:`%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. + DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. + You can specify `%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. Mosaic 0.4.x series issues an ERROR on standard, non-Photon clusters `ADB `_ | `AWS `_ | `GCP `_: - DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for - spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for + spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + +As of Mosaic 0.4.0 (subject to change in follow-on releases) -As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): +* `Assigned Clusters `_: Mosaic Python, SQL, R, and Scala APIs. +* `Shared Access Clusters `_: Mosaic Scala API (JVM) with + Admin `allowlisting `_; + Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. -* `Assigned Clusters `_ - * Mosaic Python, SQL, R, and Scala APIs. -* `Shared Access Clusters `_ - * Mosaic Scala API (JVM) with Admin `allowlisting `_. - * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. - * Mosaic SQL expressions cannot yet be registered due to `Unity Catalog `_. - API changes, more `here `_. +.. warning:: + Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due + to `Unity Catalog `_ API changes, more `here `_. .. note:: - Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: + As of Mosaic 0.4.0 (subject to change in follow-on releases) * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Clusters can read `Volumes `_ via relevant - built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. - + * Along the same principle of isolation, clusters (both Assigned and Shared Access) can read + `Volumes `_ via relevant built-in readers and + writers or via custom python calls which do not involve any custom JVM code. Version 0.3.x Series ==================== @@ -96,6 +106,9 @@ Version 0.3.x Series We recommend using Databricks Runtime versions 12.2 LTS with Photon enabled. For Mosaic versions < 0.4.0 please use the `0.3.x docs `_. +.. warning:: + Mosaic 0.3.x series does not support DBR 13.x DBRs. + As of the 0.3.11 release, Mosaic issues the following WARNING when initialized on a cluster that is neither Photon Runtime nor Databricks Runtime ML `ADB `_ | `AWS `_ | @@ -109,9 +122,6 @@ making this change is that we are streamlining Mosaic internals to be more align powered by Photon. Along this direction of change, Mosaic has standardized to JTS as its default and supported Vector Geometry Provider. -.. note:: - For Mosaic versions < 0.4 please use the `0.3 docs `_. - Documentation ============= diff --git a/docs/source/usage/installation.rst b/docs/source/usage/installation.rst index cdeeba4d0..1dbf81fb2 100644 --- a/docs/source/usage/installation.rst +++ b/docs/source/usage/installation.rst @@ -6,41 +6,39 @@ Supported platforms ################### .. warning:: - For Mosaic <= 0.4.1 :code:`%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic - left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of - scikit-learn in DBRs. The workaround is :code:`%pip install geopandas==0.14.3 databricks-mosaic`. - Mosaic 0.4.2+ limits the geopandas version. + For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic + has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts + with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. + Mosaic 0.4.2 release will pin the geopandas version. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: - DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. - You can specify :code:`%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. + DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. + You can specify `%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. Mosaic 0.4.x series issues an ERROR on standard, non-Photon clusters `ADB `_ | `AWS `_ | `GCP `_: - DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for - spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for + spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. -As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): +As of Mosaic 0.4.0 (subject to change in follow-on releases) -* `Assigned Clusters `_ - * Mosaic Python, SQL, R, and Scala APIs. -* `Shared Access Clusters `_ - * Mosaic Scala API (JVM) with Admin `allowlisting `_. - * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. - * Mosaic SQL expressions cannot yet be registered due to `Unity Catalog `_. - API changes, more `here `_. +* `Assigned Clusters `_: Mosaic Python, SQL, R, and Scala APIs. +* `Shared Access Clusters `_: Mosaic Scala API (JVM) with + Admin `allowlisting `_; + Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. .. note:: - Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: + As of Mosaic 0.4.0 (subject to change in follow-on releases) * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Clusters can read `Volumes `_ via relevant - built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. + * Along the same principle of isolation, clusters (both assigned and shared access) can read + `Volumes `_ via relevant built-in readers and + writers or via custom python calls which do not involve any custom JVM code. If you have cluster creation permissions in your Databricks workspace, you can create a cluster using the instructions @@ -118,11 +116,9 @@ The mechanism for enabling the Mosaic functions varies by language: enableMosaic() .. note:: - * We recommend use of :code:`import mosaic as mos` to namespace the python api and avoid any conflicts with other similar - functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are - suitable for Assigned (vs Shared Access) clusters. - * It is possible to initialize python bindings without providing :code:`dbutils`; if you do this, :code:`%%mosaic_kepler` - won't be able to render maps in notebooks. + We recommend use of **import mosaic as mos** to namespace the python api and avoid any conflicts with other similar + functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are + suitable for Assigned (vs Shared Access) clusters. Unless you are specially adding the JAR to your cluster (outside :code:`%pip` or the WHL file), please always initialize with Python first, then you can initialize Scala (after the JAR has been auto-attached by python); otherwise, you don't diff --git a/python/mosaic/api/fuse.py b/python/mosaic/api/fuse.py index 607e311db..e4b09dd73 100644 --- a/python/mosaic/api/fuse.py +++ b/python/mosaic/api/fuse.py @@ -27,6 +27,8 @@ def configure(self, test_mode: bool = False) -> bool: # volumes must be pre-generated in unity catalog os.makedirs(self.to_fuse_dir, exist_ok=True) + script_out_path = f"{self.to_fuse_dir}/{self.script_out_name}" + # - start with the un-configured script (from repo) # this is using a different (repo) folder in 0.4.2+ (to allow prior versions to work) GITHUB_CONTENT_TAG_URL = "https://raw.githubusercontent.com/databrickslabs/mosaic/main" @@ -62,8 +64,8 @@ def configure(self, test_mode: bool = False) -> bool: ) # - write the configured init script - script_out_path = Path(self.to_fuse_dir) / self.script_out_name - script_out_path.write_text(script, encoding='utf-8') + with open(script_out_path, "w") as file: + file.write(script) # --- end of script config --- From cab5db54b3ef5620302bcf19f347afe633264b61 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 13 May 2024 16:59:36 -0400 Subject: [PATCH 23/38] additional docs, use pathlib for writing script. (cherry picked from commit f4245d13740ceda51fcc3fd40229ec7cdc677b93) --- README.md | 18 ++++--- docs/source/index.rst | 84 +++++++++++++----------------- docs/source/usage/installation.rst | 44 ++++++++-------- python/mosaic/api/fuse.py | 6 +-- 4 files changed, 72 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index 84d937e6c..9b6deb3bf 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,8 @@ The supported languages are Scala, Python, R, and SQL. ## How does it work? -The Mosaic library is written in Scala (JVM) to guarantee maximum performance with Spark and when possible, it uses code generation to give an extra performance boost. +The Mosaic library is written in Scala (JVM) to guarantee maximum performance with Spark and when possible, +it uses code generation to give an extra performance boost. __The other supported languages (Python, R and SQL) are thin wrappers around the Scala (JVM) code.__ @@ -44,9 +45,9 @@ Image1: Mosaic logical design. :warning: **geopandas 0.14.4 not supported** For Mosaic <= 0.4.1 `%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic -has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts -with the limits of scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. -Mosaic 0.4.2 release will pin the geopandas version. +left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of +scikit-learn in DBRs. The workaround is `%pip install geopandas==0.14.3 databricks-mosaic`. +Mosaic 0.4.2+ limits the geopandas version. ### Mosaic 0.4.x Series [Latest] @@ -62,10 +63,13 @@ We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. __Language Bindings__ -As of Mosaic 0.4.0 (subject to change in follow-on releases)... +As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases)... -* [Assigned Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes): Mosaic Python, SQL, R, and Scala APIs. -* [Shared Access Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes): Mosaic Scala API (JVM) with Admin [allowlisting](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/allowlist.html); _Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters._ +* [Assigned Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes) + * Mosaic Python, SQL, R, and Scala APIs. +* [Shared Access Clusters](https://docs.databricks.com/en/compute/configure.html#access-modes) + * Mosaic Scala API (JVM) with Admin [allowlisting](https://docs.databricks.com/en/data-governance/unity-catalog/manage-privileges/allowlist.html). + * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. * Mosaic SQL expressions cannot yet be registered with [Unity Catalog](https://www.databricks.com/product/unity-catalog) due to API changes affecting DBRs >= 13, more [here](https://docs.databricks.com/en/udf/index.html). __Additional Notes:__ diff --git a/docs/source/index.rst b/docs/source/index.rst index 8859a1688..76bda6fb6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -29,76 +29,64 @@ :target: https://github.com/databrickslabs/mosaic/actions/workflows/docs.yml :alt: Mosaic sphinx docs - .. image:: https://img.shields.io/lgtm/grade/python/g/databrickslabs/mosaic.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/databrickslabs/mosaic/context:python - :alt: Language grade: Python - .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: black - - -Mosaic is an extension to the `Apache Spark `_ framework that allows easy and fast processing of very large geospatial datasets. - -We currently recommend using Databricks Runtime with Photon enabled; -this will leverage the Databricks H3 expressions when using H3 grid system. - -Mosaic provides: - -* easy conversion between common spatial data encodings (WKT, WKB and GeoJSON); -* constructors to easily generate new geometries from Spark native data types; -* many of the OGC SQL standard :code:`ST_` functions implemented as Spark Expressions for transforming, aggregating and joining spatial datasets; -* high performance through implementation of Spark code generation within the core Mosaic functions; -* optimisations for performing point-in-polygon joins using an approach we co-developed with Ordnance Survey (`blog post `_); and -* the choice of a Scala, SQL and Python API. - -.. warning:: - For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic - has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts - with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. - Mosaic 0.4.2 release will pin the geopandas version. +| Mosaic is an extension to the `Apache Spark `_ framework for fast + easy processing + of very large geospatial datasets. It provides: +| +| [1] The choice of a Scala, SQL and Python language bindings (written in Scala). +| [2] Raster and Vector APIs. +| [3] Easy conversion between common spatial data encodings (WKT, WKB and GeoJSON). +| [4] Constructors to easily generate new geometries from Spark native data types. +| [5] Many of the OGC SQL standard :code:`ST_` functions implemented as Spark Expressions for transforming, +| aggregating and joining spatial datasets. +| [6] High performance through implementation of Spark code generation within the core Mosaic functions. +| [7] Performing point-in-polygon joins using an approach we co-developed with Ordnance Survey + (`blog post `_). .. note:: - For Mosaic versions < 0.4 please use the `0.3 docs `_. + We recommend using Databricks Runtime with Photon enabled to leverage the Databricks H3 expressions. Version 0.4.x Series ==================== -We recommend using Databricks Runtime versions 13.3 LTS with Photon enabled. +.. warning:: + For Mosaic <= 0.4.1 :code:`%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic + left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of + scikit-learn in DBRs. The workaround is :code:`%pip install geopandas==0.14.3 databricks-mosaic`. + Mosaic 0.4.2+ limits the geopandas version. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: - DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. - You can specify `%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. + DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. + You can specify :code:`%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. Mosaic 0.4.x series issues an ERROR on standard, non-Photon clusters `ADB `_ | `AWS `_ | `GCP `_: - DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for - spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for + spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. -As of Mosaic 0.4.0 (subject to change in follow-on releases) +As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): -* `Assigned Clusters `_: Mosaic Python, SQL, R, and Scala APIs. -* `Shared Access Clusters `_: Mosaic Scala API (JVM) with - Admin `allowlisting `_; - Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. - -.. warning:: - Mosaic 0.4.x SQL bindings for DBR 13 can register with Assigned clusters (as Spark Expressions), but not Shared Access due - to `Unity Catalog `_ API changes, more `here `_. +* `Assigned Clusters `_ + * Mosaic Python, SQL, R, and Scala APIs. +* `Shared Access Clusters `_ + * Mosaic Scala API (JVM) with Admin `allowlisting `_. + * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. + * Mosaic SQL expressions cannot yet be registered due to `Unity Catalog `_. + API changes, more `here `_. .. note:: - As of Mosaic 0.4.0 (subject to change in follow-on releases) - * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Along the same principle of isolation, clusters (both Assigned and Shared Access) can read - `Volumes `_ via relevant built-in readers and - writers or via custom python calls which do not involve any custom JVM code. + * Clusters (both Assigned and Shared Access) can read `Volumes `_ + via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. + Version 0.3.x Series ==================== @@ -106,9 +94,6 @@ Version 0.3.x Series We recommend using Databricks Runtime versions 12.2 LTS with Photon enabled. For Mosaic versions < 0.4.0 please use the `0.3.x docs `_. -.. warning:: - Mosaic 0.3.x series does not support DBR 13.x DBRs. - As of the 0.3.11 release, Mosaic issues the following WARNING when initialized on a cluster that is neither Photon Runtime nor Databricks Runtime ML `ADB `_ | `AWS `_ | @@ -122,6 +107,9 @@ making this change is that we are streamlining Mosaic internals to be more align powered by Photon. Along this direction of change, Mosaic has standardized to JTS as its default and supported Vector Geometry Provider. +.. note:: + For Mosaic versions < 0.4 please use the `0.3 docs `_. + Documentation ============= diff --git a/docs/source/usage/installation.rst b/docs/source/usage/installation.rst index 1dbf81fb2..af29f0337 100644 --- a/docs/source/usage/installation.rst +++ b/docs/source/usage/installation.rst @@ -6,39 +6,39 @@ Supported platforms ################### .. warning:: - For Mosaic <= 0.4.1 **%pip install databricks-mosaic** will no longer install "as-is" in DBRs due to the fact that Mosaic - has thus far left geopandas unpinned. As of geopandas 0.14.4, numpy dependency is changed which conflicts - with the limits of scikit-learn in DBRs. The workaround is **%pip install geopandas==0.14.3 databricks-mosaic**. - Mosaic 0.4.2 release will pin the geopandas version. + For Mosaic <= 0.4.1 :code:`%pip install databricks-mosaic` will no longer install "as-is" in DBRs due to the fact that Mosaic + left geopandas unpinned in those versions. With geopandas 0.14.4, numpy dependency conflicts with the limits of + scikit-learn in DBRs. The workaround is :code:`%pip install geopandas==0.14.3 databricks-mosaic`. + Mosaic 0.4.2+ limits the geopandas version. Mosaic 0.4.x series only supports DBR 13.x DBRs. If running on a different DBR it will throw an exception: - DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. - You can specify `%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. + DEPRECATION ERROR: Mosaic v0.4.x series only supports Databricks Runtime 13. + You can specify :code:`%pip install 'databricks-mosaic<0.4,>=0.3'` for DBR < 13. Mosaic 0.4.x series issues an ERROR on standard, non-Photon clusters `ADB `_ | `AWS `_ | `GCP `_: - DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for - spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. + DEPRECATION ERROR: Please use a Databricks Photon-enabled Runtime for performance benefits or Runtime ML for + spatial AI benefits; Mosaic 0.4.x series restricts executing this cluster. -As of Mosaic 0.4.0 (subject to change in follow-on releases) +As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): -* `Assigned Clusters `_: Mosaic Python, SQL, R, and Scala APIs. -* `Shared Access Clusters `_: Mosaic Scala API (JVM) with - Admin `allowlisting `_; - Python bindings to Mosaic Scala APIs are blocked by Py4J Security on Shared Access Clusters. +* `Assigned Clusters `_ + * Mosaic Python, SQL, R, and Scala APIs. +* `Shared Access Clusters `_ + * Mosaic Scala API (JVM) with Admin `allowlisting `_. + * Mosaic Python bindings (to Mosaic Scala APIs) are blocked by Py4J Security on Shared Access Clusters. + * Mosaic SQL expressions cannot yet be registered due to `Unity Catalog `_. + API changes, more `here `_. .. note:: - As of Mosaic 0.4.0 (subject to change in follow-on releases) - * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Along the same principle of isolation, clusters (both assigned and shared access) can read - `Volumes `_ via relevant built-in readers and - writers or via custom python calls which do not involve any custom JVM code. + * Clusters (both Assigned and Shared Access) can read `Volumes `_ + via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. If you have cluster creation permissions in your Databricks workspace, you can create a cluster using the instructions @@ -116,9 +116,11 @@ The mechanism for enabling the Mosaic functions varies by language: enableMosaic() .. note:: - We recommend use of **import mosaic as mos** to namespace the python api and avoid any conflicts with other similar - functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are - suitable for Assigned (vs Shared Access) clusters. + * We recommend use of :code:`import mosaic as mos` to namespace the python api and avoid any conflicts with other similar + functions. By default, the python import will handle installing the JAR and registering Spark Expressions which are + suitable for Assigned (vs Shared Access) clusters. + * It is possible to initialize python bindings without providing :code:`dbutils`; if you do this, :code:`%%mosaic_kepler` + won't be able to render maps in notebooks. Unless you are specially adding the JAR to your cluster (outside :code:`%pip` or the WHL file), please always initialize with Python first, then you can initialize Scala (after the JAR has been auto-attached by python); otherwise, you don't diff --git a/python/mosaic/api/fuse.py b/python/mosaic/api/fuse.py index e4b09dd73..607e311db 100644 --- a/python/mosaic/api/fuse.py +++ b/python/mosaic/api/fuse.py @@ -27,8 +27,6 @@ def configure(self, test_mode: bool = False) -> bool: # volumes must be pre-generated in unity catalog os.makedirs(self.to_fuse_dir, exist_ok=True) - script_out_path = f"{self.to_fuse_dir}/{self.script_out_name}" - # - start with the un-configured script (from repo) # this is using a different (repo) folder in 0.4.2+ (to allow prior versions to work) GITHUB_CONTENT_TAG_URL = "https://raw.githubusercontent.com/databrickslabs/mosaic/main" @@ -64,8 +62,8 @@ def configure(self, test_mode: bool = False) -> bool: ) # - write the configured init script - with open(script_out_path, "w") as file: - file.write(script) + script_out_path = Path(self.to_fuse_dir) / self.script_out_name + script_out_path.write_text(script, encoding='utf-8') # --- end of script config --- From 63435fc538a7969a44e93c6e451a1ab5cc8425b1 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 14 May 2024 10:37:35 -0400 Subject: [PATCH 24/38] clarify custom JVM vs built-in language in docs. (cherry picked from commit 49a73662b537ea8ff36ba7b183342b41482285f8) --- README.md | 4 ++-- docs/source/index.rst | 6 ++++-- docs/source/usage/installation.rst | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9b6deb3bf..70827dc9a 100644 --- a/README.md +++ b/README.md @@ -74,10 +74,10 @@ As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases)... __Additional Notes:__ -As of Mosaic 0.4.0 (subject to change in follow-on releases)... +Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: 1. [Unity Catalog](https://www.databricks.com/product/unity-catalog): Enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. -2. [Volumes](https://docs.databricks.com/en/connect/unity-catalog/volumes.html): Along the same principle of isolation, clusters (both assigned and shared access) can read Volumes via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. +2. [Volumes](https://docs.databricks.com/en/connect/unity-catalog/volumes.html): Along the same principle of isolation, clusters can read Volumes via relevant built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. ### Mosaic 0.3.x Series diff --git a/docs/source/index.rst b/docs/source/index.rst index 76bda6fb6..d9b62490b 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -81,11 +81,13 @@ As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): API changes, more `here `_. .. note:: + Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: + * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Clusters (both Assigned and Shared Access) can read `Volumes `_ - via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. + * Clusters can read `Volumes `_ via relevant + built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. Version 0.3.x Series diff --git a/docs/source/usage/installation.rst b/docs/source/usage/installation.rst index af29f0337..cdeeba4d0 100644 --- a/docs/source/usage/installation.rst +++ b/docs/source/usage/installation.rst @@ -34,11 +34,13 @@ As of Mosaic 0.4.0 / DBR 13.3 LTS (subject to change in follow-on releases): API changes, more `here `_. .. note:: + Mosaic is a custom JVM library that extends spark, which has the following implications in DBR 13.3 LTS: + * `Unity Catalog `_ enforces process isolation which is difficult to accomplish with custom JVM libraries; as such only built-in (aka platform provided) JVM APIs can be invoked from other supported languages in Shared Access Clusters. - * Clusters (both Assigned and Shared Access) can read `Volumes `_ - via relevant built-in readers and writers or via custom python calls which do not involve any custom JVM code. + * Clusters can read `Volumes `_ via relevant + built-in (aka platform provided) readers and writers or via custom python calls which do not involve any custom JVM code. If you have cluster creation permissions in your Databricks workspace, you can create a cluster using the instructions From d442b35b1ca6448b3bbff14f5a70e531de188896 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 14 May 2024 16:22:45 -0400 Subject: [PATCH 25/38] merge changes prior to 0.4.2 release, remove pyspark dep. --- pom.xml | 58 ++++++++++++------- python/mosaic/api/gdal.py | 34 +++++++++-- python/setup.cfg | 1 - scripts/m2/mvn_init.sh | 1 + scripts/mosaic-docker.sh | 2 + .../labs/mosaic/core/raster/api/GDAL.scala | 49 +++++++++++++--- .../com/databricks/labs/mosaic/package.scala | 2 + .../sql/test/SharedSparkSessionGDAL.scala | 5 +- 8 files changed, 114 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index 8d4a8abf7..d2d54a1fc 100644 --- a/pom.xml +++ b/pom.xml @@ -146,27 +146,6 @@ - - org.scoverage - scoverage-maven-plugin - 2.0.2 - - - scoverage-report - package - - check - report-only - - - - - ${minimum.coverage} - true - ${scala.version} - skipTests=false - - net.alchim31.maven @@ -280,6 +259,43 @@ 3.4.0 0.4.2 + + + + org.scoverage + scoverage-maven-plugin + 2.0.2 + + + scoverage-report + package + + check + report-only + + + + + ${minimum.coverage} + true + ${scala.version} + skipTests=false + + + + + + + + skipScoverage + + 2.12.10 + 2.12 + 3.4.0 + 0.4.2 + 1.8 + 1.8 + diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 57c0e10f6..9108053bd 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -50,7 +50,7 @@ def setup_gdal( return setup_mgr.configure(test_mode=test_mode) -def enable_gdal(spark: SparkSession) -> None: +def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: """ Enable GDAL at runtime on a cluster with GDAL installed using init script, e.g. generated by setup_gdal() or setup_fuse_install() call. @@ -59,18 +59,26 @@ def enable_gdal(spark: SparkSession) -> None: ---------- spark : pyspark.sql.SparkSession The active SparkSession. + with_checkpoint_path : str + Optional, enable checkpointing; + default is None. Returns ------- - """ try: sc = spark.sparkContext mosaicGDALObject = getattr( sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" ) - mosaicGDALObject.enableGDAL(spark._jsparkSession) + if with_checkpoint_path: + mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) + else: + mosaicGDALObject.enableGDAL(spark._jsparkSession) + print("GDAL enabled.\n") + if with_checkpoint_path: + print(f"checkpoint path '{with_checkpoint_path}' configured for this session.") result = subprocess.run(["gdalinfo", "--version"], stdout=subprocess.PIPE) print(result.stdout.decode() + "\n") except Exception as e: @@ -78,9 +86,25 @@ def enable_gdal(spark: SparkSession) -> None: "GDAL not enabled. Mosaic with GDAL requires that GDAL be installed on the cluster.\n" ) print( - "You can run setup_gdal() or setup_fuse_install() to generate the init script for install GDAL install.\n" + "You can run `setup_gdal()` or `setup_fuse_install()` to generate the init script for GDAL install.\n" ) print( - "After the init script is generated, you need to add the init script to your cluster and restart to complete the setup.\n" + "After the init script is generated, you need to add it to your cluster and restart.\n" ) print("Error: " + str(e)) + + +def is_use_checkpoint(spark: SparkSession) -> bool: + sc = spark.sparkContext + mosaicGDALObject = getattr( + sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" + ) + return mosaicGDALObject.isUseCheckpoint() + + +def get_checkpoint_path(spark: SparkSession) -> str: + sc = spark.sparkContext + mosaicGDALObject = getattr( + sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" + ) + return mosaicGDALObject.getCheckpointPath() diff --git a/python/setup.cfg b/python/setup.cfg index 298663a38..e6905cf87 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -22,7 +22,6 @@ install_requires = h3<4.0,>=3.7 ipython>=7.22.0 keplergl==0.3.2 - pyspark<3.5,>=3.4 [options.package_data] mosaic = diff --git a/scripts/m2/mvn_init.sh b/scripts/m2/mvn_init.sh index 5c172a124..a95c53715 100755 --- a/scripts/m2/mvn_init.sh +++ b/scripts/m2/mvn_init.sh @@ -26,6 +26,7 @@ echo -e "\n::: [4] ... build python :::\n" pip install --upgrade pip cd /root/mosaic/python && pip install . pip install black build isort py4j requests +pip install pyspark==3.4.1 # [5] run gdal install script # - this is adapted from 0.4.2/mosaic-gdal-init.sh diff --git a/scripts/mosaic-docker.sh b/scripts/mosaic-docker.sh index 9cc4ec7dd..ab5ed6144 100644 --- a/scripts/mosaic-docker.sh +++ b/scripts/mosaic-docker.sh @@ -8,6 +8,8 @@ # - [a] after launch type `unset JAVA_TOOL_OPTIONS` from the container # - [b] then can test e.g. `mvn -X test -DskipTests=false -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and # `python3 -m unittest mosaic test/test_fuse_install.py` from python +# - [c] you may need to run `mvn clean` occasionally, especially around initial setup as intellij is JDK 11 +# and docker is JDK 8. # ... don't need to specify -PskipCoverage (see settings.xml) docker run --platform linux/amd64 --name mosaic-dev --rm -p 5005:5005 -p 8888:8888 \ -v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" \ diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala index d840a3205..008717ee1 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/api/GDAL.scala @@ -50,10 +50,18 @@ object GDAL { /** @return Returns the name of the raster API. */ def name: String = "GDAL" + /** @return Returns whether using checkpoint (assumes `enable` called) */ + def isUseCheckpoint: Boolean = MosaicGDAL.isUseCheckpoint + + /** @return Returns checkpoint path (assumes `enable` called) */ + def getCheckpointPath: String = MosaicGDAL.getCheckpointPath + /** * Enables GDAL on the worker nodes. GDAL requires drivers to be registered * on the worker nodes. This method registers all the drivers on the worker * nodes. + * @param mosaicConfig + * The [[MosaicExpressionConfig]] for the op. */ def enable(mosaicConfig: MosaicExpressionConfig): Unit = { configureGDAL(mosaicConfig) @@ -61,6 +69,13 @@ object GDAL { gdal.AllRegister() } + /** + * Enables GDAL on the worker nodes. GDAL requires drivers to be registered + * on the worker nodes. This method registers all the drivers on the worker + * nodes. + * @param spark + * Spark session from which to populate the [[MosaicExpressionConfig]]. + */ def enable(spark: SparkSession): Unit = { val mosaicConfig = MosaicExpressionConfig(spark) enable(mosaicConfig) @@ -147,6 +162,10 @@ object GDAL { * * @param generatedRasters * The rasters to write. + * @param rasterDT + * The type of raster to write. + * - if string write to checkpoint + * - otherwise, write to bytes * @return * Returns the paths of the written rasters. */ @@ -155,12 +174,7 @@ object GDAL { if (raster != null) { rasterDT match { case StringType => - val uuid = UUID.randomUUID().toString - val extension = GDAL.getExtension(raster.getDriversShortName) - val writePath = s"${MosaicGDAL.checkpointPath}/$uuid.$extension" - val outPath = raster.writeToPath(writePath) - RasterCleaner.dispose(raster) - UTF8String.fromString(outPath) + writeRasterString(raster) case BinaryType => val bytes = raster.writeToBytes() RasterCleaner.dispose(raster) @@ -172,6 +186,15 @@ object GDAL { ) } + private def writeRasterString(raster: MosaicRasterGDAL): UTF8String = { + val uuid = UUID.randomUUID().toString + val extension = GDAL.getExtension(raster.getDriversShortName) + val writePath = s"${getCheckpointPath}/$uuid.$extension" + val outPath = raster.writeToPath(writePath) + RasterCleaner.dispose(raster) + UTF8String.fromString(outPath) + } + /** * Reads a raster from the given path. Assume not zipped file. If zipped, * use raster(path, vsizip = true) @@ -179,8 +202,10 @@ object GDAL { * @param path * The path to the raster. This path has to be a path to a single raster. * Rasters with subdatasets are supported. + * @param parentPath + * Parent path can help with detecting driver. * @return - * Returns a Raster object. + * Returns a [[MosaicRasterGDAL]] object. */ def raster(path: String, parentPath: String): MosaicRasterGDAL = { val createInfo = Map("path" -> path, "parentPath" -> parentPath) @@ -193,8 +218,12 @@ object GDAL { * * @param content * The byte array to read the raster from. + * @param parentPath + * Parent path can help with detecting driver. + * @param driverShortName + * Driver to use in reading. * @return - * Returns a Raster object. + * Returns a [[MosaicRasterGDAL]] object. */ def raster(content: Array[Byte], parentPath: String, driverShortName: String): MosaicRasterGDAL = { val createInfo = Map("parentPath" -> parentPath, "driver" -> driverShortName) @@ -210,8 +239,10 @@ object GDAL { * Rasters with subdatasets are supported. * @param bandIndex * The index of the band to read from the raster. + * @param parentPath + * Parent path can help with detecting driver. * @return - * Returns a Raster band object. + * Returns a [[MosaicRasterBandGDAL]] object. */ def band(path: String, bandIndex: Int, parentPath: String): MosaicRasterBandGDAL = { val createInfo = Map("path" -> path, "parentPath" -> parentPath) diff --git a/src/main/scala/com/databricks/labs/mosaic/package.scala b/src/main/scala/com/databricks/labs/mosaic/package.scala index 7b5f1da73..4e4716fab 100644 --- a/src/main/scala/com/databricks/labs/mosaic/package.scala +++ b/src/main/scala/com/databricks/labs/mosaic/package.scala @@ -22,6 +22,8 @@ package object mosaic { val MOSAIC_GDAL_NATIVE = "spark.databricks.labs.mosaic.gdal.native" val MOSAIC_RASTER_CHECKPOINT = "spark.databricks.labs.mosaic.raster.checkpoint" val MOSAIC_RASTER_CHECKPOINT_DEFAULT = "/dbfs/tmp/mosaic/raster/checkpoint" + val MOSAIC_RASTER_USE_CHECKPOINT = "spark.databricks.labs.mosaic.raster.use.checkpoint" + val MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT = "false" val MOSAIC_RASTER_TMP_PREFIX = "spark.databricks.labs.mosaic.raster.tmp.prefix" val MOSAIC_RASTER_BLOCKSIZE = "spark.databricks.labs.mosaic.raster.blocksize" val MOSAIC_RASTER_BLOCKSIZE_DEFAULT = "128" diff --git a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala index 9aa152cee..95f71978f 100644 --- a/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala +++ b/src/test/scala/org/apache/spark/sql/test/SharedSparkSessionGDAL.scala @@ -2,7 +2,7 @@ package org.apache.spark.sql.test import com.databricks.labs.mosaic.gdal.MosaicGDAL import com.databricks.labs.mosaic.utils.FileUtils -import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_TEST_MODE} +import com.databricks.labs.mosaic.{MOSAIC_GDAL_NATIVE, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT, MOSAIC_TEST_MODE} import org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession import org.gdal.gdal.gdal @@ -23,7 +23,7 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { conf.set(MOSAIC_RASTER_CHECKPOINT, FileUtils.createMosaicTempDir(prefix = "/mnt/")) SparkSession.cleanupAnyExistingSession() val session = new MosaicTestSparkSession(conf) - session.sparkContext.setLogLevel("FATAL") + session.sparkContext.setLogLevel("ERROR") Try { MosaicGDAL.enableGDAL(session) } @@ -32,6 +32,7 @@ trait SharedSparkSessionGDAL extends SharedSparkSession { override def beforeEach(): Unit = { super.beforeEach() + sparkConf.set(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT) MosaicGDAL.enableGDAL(this.spark) gdal.AllRegister() } From 74ae84b52b3fa2723e7e8b1787cf8075dd962d74 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Wed, 15 May 2024 14:33:23 -0400 Subject: [PATCH 26/38] checkpoint handling for file and content. --- .../labs/mosaic/core/types/model/MosaicRasterTile.scala | 1 - .../labs/mosaic/expressions/raster/RST_FromContent.scala | 9 ++++----- .../labs/mosaic/expressions/raster/RST_FromFile.scala | 9 ++++----- .../labs/mosaic/expressions/raster/RST_MakeTiles.scala | 7 ++++--- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index b27f6147e..6d545db10 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -4,7 +4,6 @@ import com.databricks.labs.mosaic.core.index.IndexSystem import com.databricks.labs.mosaic.core.raster.api.GDAL import com.databricks.labs.mosaic.core.raster.gdal.MosaicRasterGDAL import com.databricks.labs.mosaic.expressions.raster.{buildMapString, extractMap} -import com.databricks.labs.mosaic.gdal.MosaicGDAL import org.apache.spark.sql.catalyst.InternalRow import org.apache.spark.sql.types.{BinaryType, DataType, LongType, StringType} import org.apache.spark.unsafe.types.UTF8String diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala index 2669e5fd0..0c53261ab 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromContent.scala @@ -33,12 +33,10 @@ case class RST_FromContent( with Serializable with NullIntolerant with CodegenFallback { - - val tileType: DataType = BinaryType override def dataType: DataType = { GDAL.enable(expressionConfig) - RasterTileType(expressionConfig.getCellIdType, tileType, expressionConfig.isRasterUseCheckpoint) + RasterTileType(expressionConfig.getCellIdType, BinaryType, expressionConfig.isRasterUseCheckpoint) } protected val geometryAPI: GeometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) @@ -65,6 +63,7 @@ case class RST_FromContent( */ override def eval(input: InternalRow): TraversableOnce[InternalRow] = { GDAL.enable(expressionConfig) + val rasterType = dataType.asInstanceOf[RasterTileType].rasterType val driver = driverExpr.eval(input).asInstanceOf[UTF8String].toString val ext = GDAL.getExtension(driver) var rasterArr = contentExpr.eval(input).asInstanceOf[Array[Byte]] @@ -74,7 +73,7 @@ case class RST_FromContent( val createInfo = Map("parentPath" -> PathUtils.NO_PATH_STRING, "driver" -> driver) var raster = MosaicRasterGDAL.readRaster(rasterArr, createInfo) var tile = MosaicRasterTile(null, raster) - val row = tile.formatCellId(indexSystem).serialize(tileType) + val row = tile.formatCellId(indexSystem).serialize(rasterType) RasterCleaner.dispose(raster) RasterCleaner.dispose(tile) rasterArr = null @@ -91,7 +90,7 @@ case class RST_FromContent( // split to tiles up to specifed threshold var tiles = ReTileOnRead.localSubdivide(tmpPath, PathUtils.NO_PATH_STRING, targetSize) - val rows = tiles.map(_.formatCellId(indexSystem).serialize(tileType)) + val rows = tiles.map(_.formatCellId(indexSystem).serialize(rasterType)) tiles.foreach(RasterCleaner.dispose(_)) Files.deleteIfExists(Paths.get(tmpPath)) rasterArr = null diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala index 64a446251..2627858d0 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_FromFile.scala @@ -32,12 +32,10 @@ case class RST_FromFile( with Serializable with NullIntolerant with CodegenFallback { - - val tileType: DataType = BinaryType override def dataType: DataType = { GDAL.enable(expressionConfig) - RasterTileType(expressionConfig.getCellIdType, tileType, expressionConfig.isRasterUseCheckpoint) + RasterTileType(expressionConfig.getCellIdType, BinaryType, expressionConfig.isRasterUseCheckpoint) } protected val geometryAPI: GeometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) @@ -64,6 +62,7 @@ case class RST_FromFile( */ override def eval(input: InternalRow): TraversableOnce[InternalRow] = { GDAL.enable(expressionConfig) + val rasterType = dataType.asInstanceOf[RasterTileType].rasterType val path = rasterPathExpr.eval(input).asInstanceOf[UTF8String].toString val readPath = PathUtils.getCleanPath(path) val driver = MosaicRasterGDAL.identifyDriver(path) @@ -73,7 +72,7 @@ case class RST_FromFile( val createInfo = Map("path" -> readPath, "parentPath" -> path) var raster = MosaicRasterGDAL.readRaster(createInfo) var tile = MosaicRasterTile(null, raster) - val row = tile.formatCellId(indexSystem).serialize(tileType) + val row = tile.formatCellId(indexSystem).serialize(rasterType) RasterCleaner.dispose(raster) RasterCleaner.dispose(tile) raster = null @@ -86,7 +85,7 @@ case class RST_FromFile( Files.copy(Paths.get(readPath), Paths.get(tmpPath), StandardCopyOption.REPLACE_EXISTING) val size = if (targetSize <= 0) 64 else targetSize var tiles = ReTileOnRead.localSubdivide(tmpPath, path, size) - val rows = tiles.map(_.formatCellId(indexSystem).serialize(tileType)) + val rows = tiles.map(_.formatCellId(indexSystem).serialize(rasterType)) tiles.foreach(RasterCleaner.dispose(_)) Files.deleteIfExists(Paths.get(tmpPath)) tiles = null diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala index f9279c568..effadf81f 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala @@ -124,7 +124,8 @@ case class RST_MakeTiles( override def eval(input: InternalRow): TraversableOnce[InternalRow] = { GDAL.enable(expressionConfig) - val tileType = dataType.asInstanceOf[StructType].find(_.name == "raster").get.dataType +// val tileType = dataType.asInstanceOf[StructType].find(_.name == "raster").get.dataType + val rasterType = dataType.asInstanceOf[RasterTileType].rasterType val rawDriver = driverExpr.eval(input).asInstanceOf[UTF8String].toString val rawInput = inputExpr.eval(input) @@ -138,7 +139,7 @@ case class RST_MakeTiles( val createInfo = Map("parentPath" -> PathUtils.NO_PATH_STRING, "driver" -> driver, "path" -> path) val raster = GDAL.readRaster(rawInput, createInfo, inputExpr.dataType) val tile = MosaicRasterTile(null, raster) - val row = tile.formatCellId(indexSystem).serialize(tileType) + val row = tile.formatCellId(indexSystem).serialize(rasterType) RasterCleaner.dispose(raster) RasterCleaner.dispose(tile) Seq(InternalRow.fromSeq(Seq(row))) @@ -157,7 +158,7 @@ case class RST_MakeTiles( } val size = if (targetSize <= 0) 64 else targetSize var tiles = ReTileOnRead.localSubdivide(readPath, PathUtils.NO_PATH_STRING, size) - val rows = tiles.map(_.formatCellId(indexSystem).serialize(tileType)) + val rows = tiles.map(_.formatCellId(indexSystem).serialize(rasterType)) tiles.foreach(RasterCleaner.dispose(_)) Files.deleteIfExists(Paths.get(readPath)) tiles = null From acae6a81c001c6be35af5e94a2e2559eec3d2711 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Thu, 16 May 2024 08:59:22 -0400 Subject: [PATCH 27/38] enableGDALWithCheckpoint re-inits MosaicContext --- python/mosaic/api/gdal.py | 2 +- .../labs/mosaic/gdal/MosaicGDAL.scala | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 9108053bd..6d0713a6a 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -3,7 +3,7 @@ import subprocess -__all__ = ["setup_gdal", "enable_gdal"] +__all__ = ["setup_gdal", "enable_gdal", "is_use_checkpoint", "get_checkpoint_path"] def setup_gdal( diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index 6239b7b13..bc0f8593e 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -1,5 +1,7 @@ package com.databricks.labs.mosaic.gdal +import com.databricks.labs.mosaic.core.geometry.api.GeometryAPI +import com.databricks.labs.mosaic.core.index.IndexSystemFactory import com.databricks.labs.mosaic.{MOSAIC_RASTER_BLOCKSIZE_DEFAULT, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_TEST_MODE} import com.databricks.labs.mosaic.functions.{MosaicContext, MosaicExpressionConfig} import com.databricks.labs.mosaic.utils.PathUtils @@ -106,6 +108,7 @@ object MosaicGDAL extends Logging { throw exception } } else { + configureGDAL(expressionConfig) configureCheckpoint(expressionConfig) } } @@ -150,19 +153,18 @@ object MosaicGDAL extends Logging { spark.conf.set(MOSAIC_RASTER_CHECKPOINT, withCheckpointPath) spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, "true") - // [c] enable gdal from configs - enableGDAL(spark) - logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") + // [c] Init MosaicContext + // - this is necessary to register with the latest context + // - may be a re-init of the Context which is ok + val expressionConfig = MosaicExpressionConfig(spark) + val indexSystem = IndexSystemFactory.getIndexSystem(expressionConfig.getIndexSystem) + val geometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) + MosaicContext.build(indexSystem, geometryAPI) - // [d] re-register expressions - // - needed to update the MosaicConfig used. - Try { - MosaicContext.context().register(spark) - logInfo("... re-registered expressions") - }.getOrElse( - logWarning("...Unable to re-register expressions (is MosaicContext initialized?)") - ) + // [d] enable gdal from configs + enableGDAL(spark) + logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") } /** Loads the shared objects required for GDAL. */ From 5ef3620248961fe0322592e9c42209e03b7c66c0 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Thu, 16 May 2024 10:15:39 -0400 Subject: [PATCH 28/38] re-register spark expressions for checkpoint --- .../scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index bc0f8593e..9185b609b 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -109,7 +109,6 @@ object MosaicGDAL extends Logging { } } else { configureGDAL(expressionConfig) - configureCheckpoint(expressionConfig) } } @@ -156,13 +155,17 @@ object MosaicGDAL extends Logging { // [c] Init MosaicContext // - this is necessary to register with the latest context // - may be a re-init of the Context which is ok + // - registers spark expressions with the new config val expressionConfig = MosaicExpressionConfig(spark) val indexSystem = IndexSystemFactory.getIndexSystem(expressionConfig.getIndexSystem) val geometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) - MosaicContext.build(indexSystem, geometryAPI) + val mc = MosaicContext.build(indexSystem, geometryAPI) + mc.register(spark) // [d] enable gdal from configs + // - may be a re-init which is ok + // - if so, will just update configs enableGDAL(spark) logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") } From 3e6938a5019a7daa197b1c52de7eff09b81b321b Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Thu, 16 May 2024 16:24:22 -0400 Subject: [PATCH 29/38] refresh python mosaic context. adjusted config for python and ipython version limits. --- CHANGELOG.md | 10 +++++++ python/mosaic/core/mosaic_context.py | 9 ++++--- python/setup.cfg | 4 +-- .../labs/mosaic/functions/MosaicContext.scala | 26 ++++++++++++++++--- .../functions/MosaicExpressionConfig.scala | 4 +++ .../labs/mosaic/gdal/MosaicGDAL.scala | 25 ++++++++++-------- 6 files changed, 57 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56e7bff22..c9a4d0719 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## v0.4.3 [DBR 13.3 LTS] +- Pyspark requirement removed from python setup.cfg as it is supplied by DBR +- iPython dependency limited to "<8.11,>=7.4.2" for both DBR and keplergl-jupyter +- Python version limited to "<3.11,>=3.10" for DBR +- Fixes 'raster_to_grid' reader tessellation issue affecting some NetCDFs; also adding repartitioning for better performance. +- Expanded support for fuse-based checkpointing (persisted raster storage), managed through: + - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. + - python: `mos.enable_gdal(spark, with_checkpoint_path=path)`. + - scala: `MosaicGDAL.enableGDALWithCheckpoint(spark, path) function`. + ## v0.4.2 [DBR 13.3 LTS] - Geopandas now fixed to "<0.14.4,>=0.14" due to conflict with minimum numpy version in geopandas 0.14.4. - H3 python changed from "==3.7.0" to "<4.0,>=3.7" to pick up patches. diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index 96854130b..261982383 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -50,11 +50,10 @@ def __init__(self, spark: SparkSession): IndexSystem = self._indexSystemFactory.getIndexSystem(self._index_system) GeometryAPIClass = getattr(self._mosaicPackageObject, self._geometry_api) - self._context = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) def invoke_function(self, name: str, *args: Any) -> MosaicColumn: - func = getattr(self._context.functions(), name) + func = getattr(self._jmosaicContext().functions(), name) return MosaicColumn(func(*args)) @property @@ -67,10 +66,12 @@ def index_system(self): @property def _jmosaicContext(self): + self._context = self._mosaicContextClass.context() return self._context def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): if with_checkpoint_path: - return self._mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) + self._mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) else: - return self._mosaicGDALObject.enableGDAL(spark._jsparkSession) \ No newline at end of file + self._mosaicGDALObject.enableGDAL(spark._jsparkSession) + self._context = self._mosaicContextClass.context() # <- refresh context diff --git a/python/setup.cfg b/python/setup.cfg index e6905cf87..4ffd3dc94 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -16,11 +16,11 @@ classifiers = [options] packages = find: -python_requires = >=3.10.0 +python_requires = <3.11,>=3.10 install_requires = geopandas<0.14.4,>=0.14 h3<4.0,>=3.7 - ipython>=7.22.0 + ipython<8.11,>=7.4.2 keplergl==0.3.2 [options.package_data] diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala index 8791709f1..c282ed3d8 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala @@ -75,19 +75,32 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends ) } + /** + * Registers required parsers for SQL for Mosaic functionality. + * - uses spark from existing session. + * - called on driver. + */ def register(): Unit = { - val spark = SparkSession.builder().getOrCreate() register(spark) } + /** + * Registers required parsers for SQL for Mosaic functionality. + * - uses spark from existing session. + * - called on driver. + * + * @param database + * A database to which functions are added to. By default none is passed + * resulting in functions being registered in default database. + */ def register(database: String): Unit = { - val spark = SparkSession.builder().getOrCreate() spark.sql(s"create database if not exists $database") register(spark, Some(database)) } /** * Registers required parsers for SQL for Mosaic functionality. + * - called on driver. * * @param spark * SparkSession to which the parsers are registered to. @@ -101,9 +114,9 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends spark: SparkSession, database: Option[String] = None ): Unit = { + expressionConfig.updateSparkConf(spark) // any changes? val registry = spark.sessionState.functionRegistry val mosaicRegistry = MosaicRegistry(registry, database) - expressionConfig.updateSparkConf() // any changes? /** IndexSystem and GeometryAPI Agnostic methods */ registry.registerFunction( @@ -551,7 +564,6 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends } def shouldUseDatabricksH3(): Boolean = { - val spark = SparkSession.builder().getOrCreate() val isDatabricksH3Enabled = spark.conf.get(SPARK_DATABRICKS_GEO_H3_ENABLED, "false") == "true" indexSystem.name == H3.name && isDatabricksH3Enabled } @@ -1076,6 +1088,12 @@ object MosaicContext extends Logging { case None => throw new Error("MosaicContext was not built.") } + def hasContext: Boolean = + instance match { + case Some(_) => true + case None => false + } + def reset(): Unit = instance = None // noinspection ScalaStyle,ScalaWeakerAccess diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala index 6864942aa..9a76c29d2 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicExpressionConfig.scala @@ -21,6 +21,10 @@ case class MosaicExpressionConfig(configs: Map[String, String]) { def updateSparkConf(): Unit = { // populate initial set configs val spark = SparkSession.builder().getOrCreate() + updateSparkConf(spark) + } + + def updateSparkConf(spark: SparkSession): Unit = { val sparkConf = spark.sparkContext.getConf configs.foreach { case (k, v) => sparkConf.set(k, v) } diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index 9185b609b..8aa857c85 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -16,7 +16,7 @@ import scala.language.postfixOps import scala.util.Try //noinspection DuplicatedCode -/** GDAL environment preparation and configuration. */ +/** GDAL environment preparation and configuration. Some functions only for driver. */ object MosaicGDAL extends Logging { private val usrlibsoPath = "/usr/lib/libgdal.so" @@ -37,6 +37,7 @@ object MosaicGDAL extends Logging { var checkpointPath: String = _ var useCheckpoint: Boolean = _ + // Only use this with GDAL rasters val WSG84: SpatialReference = { val wsg84 = new SpatialReference() @@ -85,16 +86,16 @@ object MosaicGDAL extends Logging { } } - /** Enables the GDAL environment. */ + /** Enables the GDAL environment, called from driver. */ def enableGDAL(spark: SparkSession): Unit = { // refresh configs in case spark had changes - val expressionConfig = MosaicExpressionConfig(spark) + val mosaicConfig = MosaicExpressionConfig(spark) if (!wasEnabled(spark) && !isEnabled) { Try { isEnabled = true loadSharedObjects() - configureGDAL(expressionConfig) + configureGDAL(mosaicConfig) gdal.AllRegister() spark.conf.set(GDAL_ENABLED, "true") } match { @@ -108,12 +109,12 @@ object MosaicGDAL extends Logging { throw exception } } else { - configureGDAL(expressionConfig) + configureCheckpoint(mosaicConfig) } } /** - * Enables the GDAL environment with checkpointing. + * Enables the GDAL environment with checkpointing, called from driver. * - alternative to setting spark configs prior to init. * - can be called multiple times in a session as you want to change * checkpoint location. @@ -156,13 +157,15 @@ object MosaicGDAL extends Logging { // - this is necessary to register with the latest context // - may be a re-init of the Context which is ok // - registers spark expressions with the new config - val expressionConfig = MosaicExpressionConfig(spark) - val indexSystem = IndexSystemFactory.getIndexSystem(expressionConfig.getIndexSystem) - val geometryAPI = GeometryAPI.apply(expressionConfig.getGeometryAPI) - val mc = MosaicContext.build(indexSystem, geometryAPI) + if (!MosaicContext.hasContext) { + val mosaicConfig = MosaicExpressionConfig(spark) + val indexSystem = IndexSystemFactory.getIndexSystem(mosaicConfig.getIndexSystem) + val geometryAPI = GeometryAPI.apply(mosaicConfig.getGeometryAPI) + MosaicContext.build(indexSystem, geometryAPI) + } + val mc = MosaicContext.context() mc.register(spark) - // [d] enable gdal from configs // - may be a re-init which is ok // - if so, will just update configs From 8e658b03a9f635444fcd7f63d178b80993c03653 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Thu, 16 May 2024 17:31:40 -0400 Subject: [PATCH 30/38] additional adjustments to mosaic_context and additional functions for managing checkpointing. --- python/mosaic/core/mosaic_context.py | 20 +++-- .../labs/mosaic/gdal/MosaicGDAL.scala | 85 ++++++++++++++----- 2 files changed, 80 insertions(+), 25 deletions(-) diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index 261982383..ce603cc66 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -53,7 +53,8 @@ def __init__(self, spark: SparkSession): self._context = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) def invoke_function(self, name: str, *args: Any) -> MosaicColumn: - func = getattr(self._jmosaicContext().functions(), name) + self._refreshMosaicContext() # <- refresh + func = getattr(self._context.functions(), name) return MosaicColumn(func(*args)) @property @@ -64,14 +65,23 @@ def geometry_api(self): def index_system(self): return self._index_system - @property - def _jmosaicContext(self): + def _refreshMosaicContext(self): self._context = self._mosaicContextClass.context() - return self._context def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): if with_checkpoint_path: self._mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) else: self._mosaicGDALObject.enableGDAL(spark._jsparkSession) - self._context = self._mosaicContextClass.context() # <- refresh context + self._refreshMosaicContext() # <- refresh + + def update_checkpoint_path(self, spark: SparkSession, path: str): + self._mosaicGDALObject.updateCheckpointPath(spark._jsparkSession, path) + + def set_checkpoint_off(self, spark: SparkSession): + self._mosaicGDALObject.setCheckpointOff(spark._jsparkSession) + + def set_checkpoint_on(self, spark: SparkSession): + self._mosaicGDALObject.setCheckpointOn(spark._jsparkSession) + + diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index 8aa857c85..335a7e841 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -86,7 +86,13 @@ object MosaicGDAL extends Logging { } } - /** Enables the GDAL environment, called from driver. */ + /** + * Enables the GDAL environment, called from driver. + * - see mosaic_context.py as well for use. + * + * @param spark + * spark session to use. + */ def enableGDAL(spark: SparkSession): Unit = { // refresh configs in case spark had changes val mosaicConfig = MosaicExpressionConfig(spark) @@ -120,43 +126,87 @@ object MosaicGDAL extends Logging { * checkpoint location. * - sets [[checkpointPath]] to provided path. * - sets [[useCheckpoint]] to "true". + * - see mosaic_context.py as well for use. * @param spark * spark session to use. * @param withCheckpointPath * path to set. */ def enableGDALWithCheckpoint(spark: SparkSession, withCheckpointPath: String): Unit = { - // [a] initial checks - // - will make dirs if conditions met + // - set spark config to enable checkpointing + // - initial checks + update path + // - also inits MosaicContext + // - also enables GDAL and refreshes accessors + spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, "true") + updateCheckpointPath(spark, withCheckpointPath) + logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") + } + + /** + * Update the checkpoint path. + * - will make dirs if conditions met. + * - will make sure the session is consistent with these settings. + * - see mosaic_context.py as well for use. + * + * @param spark + * spark session to use. + * @param path + * supported cloud object path to use. + */ + def updateCheckpointPath(spark: SparkSession, path: String): Unit = { val isTestMode = spark.conf.get(MOSAIC_TEST_MODE, "false").toBoolean - if (withCheckpointPath == null) { + if (path == null) { val msg = "Null checkpoint path provided." logError(msg) throw new NullPointerException(msg) - } else if (!isTestMode && !PathUtils.isFuseLocation(withCheckpointPath)) { + } else if (!isTestMode && !PathUtils.isFuseLocation(path)) { val msg = "Checkpoint path must be a (non-local) fuse location." logError(msg) - throw new InvalidPathException(withCheckpointPath, msg) - } else if (!Files.exists(Paths.get(withCheckpointPath))) { - if (withCheckpointPath.startsWith("/Volumes/")) { + throw new InvalidPathException(path, msg) + } else if (!Files.exists(Paths.get(path))) { + if (path.startsWith("/Volumes/")) { val msg = "Volume checkpoint path doesn't exist and must be created through Databricks catalog." logError(msg) throw new FileNotFoundException(msg) } else { - val dir = new File(withCheckpointPath) + val dir = new File(path) dir.mkdirs } } + spark.conf.set(MOSAIC_RASTER_CHECKPOINT, path) + updateMosaicContext(spark) + } - // [b] set spark configs for checkpoint - // - will make sure the session is consistent with these settings. - spark.conf.set(MOSAIC_RASTER_CHECKPOINT, withCheckpointPath) + /** + * Set spark config to disable checkpointing. + * - will make sure the session is consistent with these settings. + * - see mosaic_context.py as well for use. + * + * @param spark + * spark session to use. + */ + def setCheckpointOff(spark: SparkSession): Unit = { + spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, "false") + updateMosaicContext(spark) + } + + /** + * Set spark config to enable checkpointing. + * - will make sure the session is consistent with these settings. + * - see mosaic_context.py as well for use. + * + * @param spark + * Spark session to use. + */ + def setCheckpointOn(spark: SparkSession): Unit = { spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, "true") + updateMosaicContext(spark) + } - // [c] Init MosaicContext - // - this is necessary to register with the latest context - // - may be a re-init of the Context which is ok + private def updateMosaicContext(spark: SparkSession): Unit = { + // - necessary to register with the latest context // - registers spark expressions with the new config + // - will make sure the session is consistent with these settings if (!MosaicContext.hasContext) { val mosaicConfig = MosaicExpressionConfig(spark) val indexSystem = IndexSystemFactory.getIndexSystem(mosaicConfig.getIndexSystem) @@ -165,12 +215,7 @@ object MosaicGDAL extends Logging { } val mc = MosaicContext.context() mc.register(spark) - - // [d] enable gdal from configs - // - may be a re-init which is ok - // - if so, will just update configs enableGDAL(spark) - logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") } /** Loads the shared objects required for GDAL. */ From 406027a565ab4670880c22273298381c0afe4baa Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Fri, 17 May 2024 14:33:04 -0400 Subject: [PATCH 31/38] streamline python bindings wrt mosaic_context. --- python/mosaic/api/enable.py | 17 ++--- python/mosaic/api/gdal.py | 83 ++++++++++++++++------ python/mosaic/core/mosaic_context.py | 102 +++++++++++++++++++-------- 3 files changed, 142 insertions(+), 60 deletions(-) diff --git a/python/mosaic/api/enable.py b/python/mosaic/api/enable.py index 5a96d226e..1ce2a3e63 100644 --- a/python/mosaic/api/enable.py +++ b/python/mosaic/api/enable.py @@ -77,19 +77,16 @@ def enable_mosaic( print(f"...set 'spark.databricks.labs.mosaic.jar.path' to '{jar_path}'") if log_info: spark.sparkContext.setLogLevel("info") + + # Config global objects config.mosaic_spark = spark _ = MosaicLibraryHandler(config.mosaic_spark, log_info=log_info) - config.mosaic_context = MosaicContext(config.mosaic_spark) - - # Register SQL functions - optionClass = getattr(spark._sc._jvm.scala, "Option$") - optionModule = getattr(optionClass, "MODULE$") - config.mosaic_context._context.register( - spark._jsparkSession, optionModule.apply(None) - ) + config.mosaic_context = MosaicContext(spark) + config.mosaic_context.register(spark) - isSupported = config.mosaic_context._context.checkDBR(spark._jsparkSession) - if not isSupported: + _jcontext = config.mosaic_context.jContext() + is_supported = _jcontext.checkDBR(spark._jsparkSession) + if not is_supported: # unexpected - checkDBR returns true or throws exception print("""WARNING: checkDBR returned False.""") diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 6d0713a6a..23b8c4152 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -1,9 +1,14 @@ from .fuse import SetupMgr +from mosaic.config import config from pyspark.sql import SparkSession import subprocess -__all__ = ["setup_gdal", "enable_gdal", "is_use_checkpoint", "get_checkpoint_path"] +__all__ = [ + "setup_gdal", "enable_gdal", + "update_checkpoint_path", "set_checkpoint_on", "set_checkpoint_off", + "has_context", "is_use_checkpoint", "get_checkpoint_path" +] def setup_gdal( @@ -67,15 +72,7 @@ def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: ------- """ try: - sc = spark.sparkContext - mosaicGDALObject = getattr( - sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" - ) - if with_checkpoint_path: - mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) - else: - mosaicGDALObject.enableGDAL(spark._jsparkSession) - + config.mosaic_context.enable_gdal(spark, with_checkpoint_path=with_checkpoint_path) print("GDAL enabled.\n") if with_checkpoint_path: print(f"checkpoint path '{with_checkpoint_path}' configured for this session.") @@ -94,17 +91,59 @@ def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: print("Error: " + str(e)) -def is_use_checkpoint(spark: SparkSession) -> bool: - sc = spark.sparkContext - mosaicGDALObject = getattr( - sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" - ) - return mosaicGDALObject.isUseCheckpoint() +def update_checkpoint_path(spark: SparkSession, path: str): + """ + Change the checkpoint location; does not adjust checkpoint on/off (stays as-is). + :param spark: session to use. + :param path: new path. + """ + config.mosaic_context.update_checkpoint_path(spark,path) -def get_checkpoint_path(spark: SparkSession) -> str: - sc = spark.sparkContext - mosaicGDALObject = getattr( - sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" - ) - return mosaicGDALObject.getCheckpointPath() +def set_checkpoint_off(spark: SparkSession): + """ + Turn off checkpointing. + :param spark: session to use. + """ + config.mosaic_context.set_checkpoint_off(spark) + + +def set_checkpoint_on(spark: SparkSession): + """ + Turn on checkpointing, will use the configured path. + :param spark: session to use. + """ + config.mosaic_context.set_checkpoint_on(spark) + + +################################################################# +## GETTERS +################################################################# + + +def has_context() -> bool: + """ + This is run on the driver, assumes enable.py already invoked. + :return: True if the mosaic context has been initialized; + otherwise False. + """ + try: + return config.mosaic_context.has_context() + except Exception as e: + return False + + +def is_use_checkpoint() -> bool: + """ + This is run on the driver, assumes enable.py already invoked. + :return: checkpoint on/off; otherwise exception. + """ + return config.mosaic_context.is_use_checkpoint() + + +def get_checkpoint_path() -> str: + """ + This is run on the driver, assumes enable.py already invoked. + :return: checkpoint path or exception. + """ + return config.mosaic_context.get_checkpoint_path() diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index ce603cc66..90e4dbf40 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -1,5 +1,4 @@ from typing import Any - from py4j.java_gateway import JavaClass, JavaObject from py4j.protocol import Py4JJavaError from pyspark.sql import SparkSession @@ -7,7 +6,6 @@ class MosaicContext: - _context = None _geometry_api: str _index_system: str _mosaicContextClass: JavaClass @@ -22,24 +20,16 @@ def __init__(self, spark: SparkSession): ) self._mosaicPackageRef = getattr(sc._jvm.com.databricks.labs.mosaic, "package$") self._mosaicPackageObject = getattr(self._mosaicPackageRef, "MODULE$") - self._mosaicGDALObject = getattr( - sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL" - ) - self._indexSystemFactory = getattr( - sc._jvm.com.databricks.labs.mosaic.core.index, "IndexSystemFactory" - ) + self._mosaicGDALObject = getattr(sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL") + self._indexSystemFactory = getattr(sc._jvm.com.databricks.labs.mosaic.core.index, "IndexSystemFactory") try: - self._geometry_api = spark.conf.get( - "spark.databricks.labs.mosaic.geometry.api" - ) + self._geometry_api = spark.conf.get("spark.databricks.labs.mosaic.geometry.api") except Py4JJavaError as e: self._geometry_api = "JTS" try: - self._index_system = spark.conf.get( - "spark.databricks.labs.mosaic.index.system" - ) + self._index_system = spark.conf.get("spark.databricks.labs.mosaic.index.system") except Py4JJavaError as e: self._index_system = "H3" @@ -48,40 +38,96 @@ def __init__(self, spark: SparkSession): except Py4JJavaError as e: self._raster_api = "GDAL" + # singleton on the java side + # - access dynamically IndexSystem = self._indexSystemFactory.getIndexSystem(self._index_system) GeometryAPIClass = getattr(self._mosaicPackageObject, self._geometry_api) - self._context = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) + _ = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) + + def jContext(self): + """ + :return: dynamic getter for jvm MosaicContext object + """ + return self._mosaicContextClass.context() def invoke_function(self, name: str, *args: Any) -> MosaicColumn: - self._refreshMosaicContext() # <- refresh - func = getattr(self._context.functions(), name) + """ + use jContext() to invoke function. + :param name: name of function. + :param args: any passed args. + :return: MosaicColumn. + """ + _jcontext = self.jContext() + func = getattr(_jcontext.functions(), name) return MosaicColumn(func(*args)) - @property - def geometry_api(self): - return self._geometry_api - - @property - def index_system(self): - return self._index_system - - def _refreshMosaicContext(self): - self._context = self._mosaicContextClass.context() + def register(self, spark: SparkSession): + """ + Register SQL expressions. + - the jvm functions for checkpointing handle after initial invoke + by enable.py. + :param spark: session to use. + """ + optionClass = getattr(spark._sc._jvm.scala, "Option$") + optionModule = getattr(optionClass, "MODULE$") + _jcontext = self.jContext() + _jcontext.register( + spark._jsparkSession, optionModule.apply(None) + ) def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): + """ + Enable GDAL, assumes regular enable already called. + :param spark: session to use. + :param with_checkpoint_path: optional checkpoint path, default is None. + """ if with_checkpoint_path: self._mosaicGDALObject.enableGDALWithCheckpoint(spark._jsparkSession, with_checkpoint_path) else: self._mosaicGDALObject.enableGDAL(spark._jsparkSession) - self._refreshMosaicContext() # <- refresh def update_checkpoint_path(self, spark: SparkSession, path: str): + """ + Change the checkpoint location; does not adjust checkpoint on/off (stays as-is). + :param spark: session to use. + :param path: new path. + """ self._mosaicGDALObject.updateCheckpointPath(spark._jsparkSession, path) def set_checkpoint_off(self, spark: SparkSession): + """ + Turn off checkpointing. + :param spark: session to use. + """ self._mosaicGDALObject.setCheckpointOff(spark._jsparkSession) def set_checkpoint_on(self, spark: SparkSession): + """ + Turn on checkpointing, will use the configured path. + :param spark: session to use. + """ self._mosaicGDALObject.setCheckpointOn(spark._jsparkSession) + ################################################################# + ## PROPERTY GETTERS + ################################################################# + @property + def geometry_api(self): + return self._geometry_api + + @property + def index_system(self): + return self._index_system + + @property + def is_use_checkpoint(self) -> bool: + return self._mosaicGDALObject.isUseCheckpoint() + + @property + def get_checkpoint_path(self) -> str: + return self._mosaicGDALObject.getCheckpointPath() + + @property + def has_context(self) -> bool: + return self._mosaicContextClass.hasContext() From f11a27193e7b94f256dbeee92fe54af564446a64 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Fri, 17 May 2024 17:15:36 -0400 Subject: [PATCH 32/38] version to 0.4.3, hasContext() function added to MosaicContext class. --- R/sparkR-mosaic/sparkrMosaic/DESCRIPTION | 2 +- R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION | 2 +- R/sparklyr-mosaic/tests.R | 2 +- docs/source/usage/install-gdal.rst | 2 +- pom.xml | 4 ++-- python/mosaic/__init__.py | 2 +- python/mosaic/api/gdal.py | 2 +- python/mosaic/core/mosaic_context.py | 5 +---- scripts/update_version.py | 7 +++++++ .../labs/mosaic/core/types/model/MosaicRasterTile.scala | 5 +++-- .../labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala | 6 +++--- .../databricks/labs/mosaic/functions/MosaicContext.scala | 4 +++- .../scala/com/databricks/labs/mosaic/utils/PathUtils.scala | 4 ++-- 13 files changed, 27 insertions(+), 20 deletions(-) diff --git a/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION b/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION index e5e1de0f1..2ea7718f9 100644 --- a/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION +++ b/R/sparkR-mosaic/sparkrMosaic/DESCRIPTION @@ -1,6 +1,6 @@ Package: sparkrMosaic Title: SparkR bindings for Databricks Mosaic -Version: 0.4.2 +Version: 0.4.3 Authors@R: person("Robert", "Whiffin", , "robert.whiffin@databricks.com", role = c("aut", "cre") ) diff --git a/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION b/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION index 69619e72a..4ce2f2be1 100644 --- a/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION +++ b/R/sparklyr-mosaic/sparklyrMosaic/DESCRIPTION @@ -1,6 +1,6 @@ Package: sparklyrMosaic Title: sparklyr bindings for Databricks Mosaic -Version: 0.4.2 +Version: 0.4.3 Authors@R: person("Robert", "Whiffin", , "robert.whiffin@databricks.com", role = c("aut", "cre") ) diff --git a/R/sparklyr-mosaic/tests.R b/R/sparklyr-mosaic/tests.R index 9bad8f6fa..2cf3b8fca 100644 --- a/R/sparklyr-mosaic/tests.R +++ b/R/sparklyr-mosaic/tests.R @@ -9,7 +9,7 @@ library(sparklyr.nested) spark_home <- Sys.getenv("SPARK_HOME") spark_home_set(spark_home) -install.packages("sparklyrMosaic_0.4.2.tar.gz", repos = NULL) +install.packages("sparklyrMosaic_0.4.3.tar.gz", repos = NULL) library(sparklyrMosaic) # find the mosaic jar in staging diff --git a/docs/source/usage/install-gdal.rst b/docs/source/usage/install-gdal.rst index cc1801a27..12d1217d0 100644 --- a/docs/source/usage/install-gdal.rst +++ b/docs/source/usage/install-gdal.rst @@ -112,7 +112,7 @@ Here are spark session configs available for raster, e.g. :code:`spark.conf.set( - Checkpoint location, e.g. :ref:`rst_maketiles` * - spark.databricks.labs.mosaic.raster.use.checkpoint - "false" - - Checkpoint for session, in 0.4.2+ + - Checkpoint for session, in 0.4.3+ * - spark.databricks.labs.mosaic.raster.tmp.prefix - "" (will use "/tmp") - Local directory for workers diff --git a/pom.xml b/pom.xml index d2d54a1fc..ec0311f4c 100644 --- a/pom.xml +++ b/pom.xml @@ -257,7 +257,7 @@ 2.12.10 2.12 3.4.0 - 0.4.2 + 0.4.3 @@ -292,7 +292,7 @@ 2.12.10 2.12 3.4.0 - 0.4.2 + 0.4.3 1.8 1.8 diff --git a/python/mosaic/__init__.py b/python/mosaic/__init__.py index 22fcceb1f..a8cd7e73a 100644 --- a/python/mosaic/__init__.py +++ b/python/mosaic/__init__.py @@ -4,4 +4,4 @@ from .models import SpatialKNN from .readers import read -__version__ = "0.4.2" +__version__ = "0.4.3" diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 23b8c4152..9a8b9e87a 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -117,7 +117,7 @@ def set_checkpoint_on(spark: SparkSession): ################################################################# -## GETTERS +# GETTERS ################################################################# diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index 90e4dbf40..3e75f7a5e 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -109,7 +109,7 @@ def set_checkpoint_on(self, spark: SparkSession): self._mosaicGDALObject.setCheckpointOn(spark._jsparkSession) ################################################################# - ## PROPERTY GETTERS + # PROPERTY ACCESSORS + GETTERS ################################################################# @property @@ -120,14 +120,11 @@ def geometry_api(self): def index_system(self): return self._index_system - @property def is_use_checkpoint(self) -> bool: return self._mosaicGDALObject.isUseCheckpoint() - @property def get_checkpoint_path(self) -> str: return self._mosaicGDALObject.getCheckpointPath() - @property def has_context(self) -> bool: return self._mosaicContextClass.hasContext() diff --git a/scripts/update_version.py b/scripts/update_version.py index a32eeb4b8..270526d23 100644 --- a/scripts/update_version.py +++ b/scripts/update_version.py @@ -3,6 +3,13 @@ import sys def main(version, snapshot): + """ + TODO: Also need to adjust... + [1] /R/sparklyr-mosaic/tests.R + - e.g. "sparklyrMosaic_0.4.3.tar.gz" + [2] /src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala + - e.g. "mosaicVersion: String = "0.4.3" + """ update_pom_version('../pom.xml', version + snapshot) update_python_version('../python/mosaic/__init__.py', version + snapshot) update_r_version('../R/sparkR-mosaic/sparkrMosaic/DESCRIPTION', version) diff --git a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala index 6d545db10..43bbf4d62 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/types/model/MosaicRasterTile.scala @@ -92,8 +92,7 @@ case class MosaicRasterTile( /** * Serialize to spark internal representation. - * - enforces spark config to turn checkpointing on for all functions in 0.4.2 - * - more at [[com.databricks.labs.mosaic.gdal.MosaicGDAL]]. + * * @param rasterDataType * How to encode the raster. * - Options are [[StringType]] or [[BinaryType]] @@ -129,6 +128,7 @@ case class MosaicRasterTile( /** * Encodes the raster according to the [[DataType]]. + * * @param rasterDataType * Specify [[BinaryType]] for byte array or [[StringType]] for path, * as used in checkpointing. @@ -155,6 +155,7 @@ object MosaicRasterTile { /** * Smart constructor based on Spark internal instance. * - Can handle based on provided raster type. + * * @param row * An instance of [[InternalRow]]. * @param idDataType diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala index 795901df5..bb4872a0e 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_CombineAvgAgg.scala @@ -37,7 +37,7 @@ case class RST_CombineAvgAgg( override val nullable: Boolean = false override lazy val dataType: DataType = RasterTileType( expressionConfig.getCellIdType, tileExpr, expressionConfig.isRasterUseCheckpoint) - lazy val tileType: DataType = dataType.asInstanceOf[RasterTileType].rasterType + lazy val rasterType: DataType = dataType.asInstanceOf[RasterTileType].rasterType override def prettyName: String = "rst_combine_avg_agg" val cellIDType: DataType = expressionConfig.getCellIdType @@ -74,7 +74,7 @@ case class RST_CombineAvgAgg( } else { // Do do move the expression - var tiles = buffer.map(row => deserializeTile(row.asInstanceOf[InternalRow], cellIDType, tileType)) + var tiles = buffer.map(row => deserializeTile(row.asInstanceOf[InternalRow], cellIDType, rasterType)) buffer.clear() // If merging multiple index rasters, the index value is dropped @@ -83,7 +83,7 @@ case class RST_CombineAvgAgg( val result = MosaicRasterTile(idx, combined) .formatCellId(IndexSystemFactory.getIndexSystem(expressionConfig.getIndexSystem)) - .serialize(tileType) + .serialize(rasterType) tiles.foreach(RasterCleaner.dispose) RasterCleaner.dispose(result) diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala index c282ed3d8..5c257e557 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala @@ -549,6 +549,8 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends } + def hasContext: Boolean = this.hasContext + def getGeometryAPI: GeometryAPI = this.geometryAPI def getIndexSystem: IndexSystem = this.indexSystem @@ -1056,7 +1058,7 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends object MosaicContext extends Logging { var _tmpDir: String = "" - val mosaicVersion: String = "0.4.2" + val mosaicVersion: String = "0.4.3" private var instance: Option[MosaicContext] = None diff --git a/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala b/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala index 088d650df..cbdb1b417 100644 --- a/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala +++ b/src/main/scala/com/databricks/labs/mosaic/utils/PathUtils.scala @@ -24,7 +24,7 @@ object PathUtils { * @param path */ def cleanUpPath(path: String): Unit = { - // 0.4.2 - new function + // 0.4.3 - new function val isSD = isSubdataset(path) val filePath = if (isSD) fromSubdatasetPath(path) else path val pamFilePath = s"$filePath.aux.xml" @@ -197,7 +197,7 @@ object PathUtils { * True if path is in a fuse location. */ def isFuseLocation(path: String): Boolean = { - // 0.4.2 - new function + // 0.4.3 - new function val p = getCleanPath(path) val isFuse = p match { case _ if ( From b0f3230ceb9f0b7c541c2877e0856907731ba265 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 20 May 2024 16:48:07 -0400 Subject: [PATCH 33/38] gdal API handles checkpoint config changes. --- .gitignore | 3 + python/mosaic/api/enable.py | 18 +- python/mosaic/api/gdal.py | 22 +- python/mosaic/config/config.py | 3 + python/mosaic/core/mosaic_context.py | 37 +-- python/test/context.py | 1 + python/test/test_checkpoint.py | 76 ++++++ python/test/test_fuse_install.py | 18 -- python/test/test_mosaic.py | 6 +- python/test/utils/mosaic_test_case.py | 15 +- .../test/utils/mosaic_test_case_with_gdal.py | 26 ++- python/test/utils/spark_test_case.py | 17 +- .../core/raster/gdal/MosaicRasterGDAL.scala | 218 +++++++++--------- .../labs/mosaic/functions/MosaicContext.scala | 4 +- .../labs/mosaic/gdal/MosaicGDAL.scala | 2 +- 15 files changed, 297 insertions(+), 169 deletions(-) create mode 100644 python/test/test_checkpoint.py diff --git a/.gitignore b/.gitignore index b0dc27a26..79c7d5635 100644 --- a/.gitignore +++ b/.gitignore @@ -161,3 +161,6 @@ spark-warehouse docker/.m2/ /python/notebooks/ /scripts/m2/ +/python/mosaic_test/ +/python/checkpoint/ +/python/checkpoint-new/ diff --git a/python/mosaic/api/enable.py b/python/mosaic/api/enable.py index 1ce2a3e63..7f954a4ef 100644 --- a/python/mosaic/api/enable.py +++ b/python/mosaic/api/enable.py @@ -72,17 +72,20 @@ def enable_mosaic( if not jar_autoattach: spark.conf.set("spark.databricks.labs.mosaic.jar.autoattach", "false") print("...set 'spark.databricks.labs.mosaic.jar.autoattach' to false") + config.jar_autoattach=False if jar_path is not None: spark.conf.set("spark.databricks.labs.mosaic.jar.path", jar_path) print(f"...set 'spark.databricks.labs.mosaic.jar.path' to '{jar_path}'") + config.jar_path=jar_path if log_info: spark.sparkContext.setLogLevel("info") + config.log_info=True # Config global objects config.mosaic_spark = spark - _ = MosaicLibraryHandler(config.mosaic_spark, log_info=log_info) config.mosaic_context = MosaicContext(spark) - config.mosaic_context.register(spark) + _ = MosaicLibraryHandler(spark, log_info=log_info) + config.mosaic_context.jRegister(spark) _jcontext = config.mosaic_context.jContext() is_supported = _jcontext.checkDBR(spark._jsparkSession) @@ -101,3 +104,14 @@ def enable_mosaic( from mosaic.utils.kepler_magic import MosaicKepler config.ipython_hook.register_magics(MosaicKepler) + + +def refresh_context(): + """ + Refresh mosaic context, using previously configured information. + - This is needed when spark configs change, such as for checkpointing. + """ + # set global config objects + # - re-init mosaic context + config.mosaic_context.jContextReset() + config.mosaic_context = MosaicContext(config.mosaic_spark) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 9a8b9e87a..33c37d253 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -1,3 +1,4 @@ +from .enable import refresh_context from .fuse import SetupMgr from mosaic.config import config from pyspark.sql import SparkSession @@ -72,7 +73,14 @@ def enable_gdal(spark: SparkSession, with_checkpoint_path: str = None) -> None: ------- """ try: - config.mosaic_context.enable_gdal(spark, with_checkpoint_path=with_checkpoint_path) + if with_checkpoint_path is not None: + spark.conf.set("spark.databricks.labs.mosaic.raster.use.checkpoint", "true") + spark.conf.set("spark.databricks.labs.mosaic.raster.checkpoint", with_checkpoint_path) + refresh_context() + config.mosaic_context.jEnableGDAL(spark, with_checkpoint_path=with_checkpoint_path) + else: + config.mosaic_context.jEnableGDAL(spark) + print("GDAL enabled.\n") if with_checkpoint_path: print(f"checkpoint path '{with_checkpoint_path}' configured for this session.") @@ -97,7 +105,9 @@ def update_checkpoint_path(spark: SparkSession, path: str): :param spark: session to use. :param path: new path. """ - config.mosaic_context.update_checkpoint_path(spark,path) + spark.conf.set("spark.databricks.labs.mosaic.raster.checkpoint", path) + refresh_context() + config.mosaic_context.jUpdateCheckpointPath(spark,path) def set_checkpoint_off(spark: SparkSession): @@ -105,7 +115,9 @@ def set_checkpoint_off(spark: SparkSession): Turn off checkpointing. :param spark: session to use. """ - config.mosaic_context.set_checkpoint_off(spark) + spark.conf.set("spark.databricks.labs.mosaic.raster.use.checkpoint", "false") + refresh_context() + config.mosaic_context.jSetCheckpointOff(spark) def set_checkpoint_on(spark: SparkSession): @@ -113,7 +125,9 @@ def set_checkpoint_on(spark: SparkSession): Turn on checkpointing, will use the configured path. :param spark: session to use. """ - config.mosaic_context.set_checkpoint_on(spark) + spark.conf.set("spark.databricks.labs.mosaic.raster.use.checkpoint", "true") + refresh_context() + config.mosaic_context.jSetCheckpointOn(spark) ################################################################# diff --git a/python/mosaic/config/config.py b/python/mosaic/config/config.py index a59979be6..16048e4d8 100644 --- a/python/mosaic/config/config.py +++ b/python/mosaic/config/config.py @@ -10,3 +10,6 @@ display_handler: DisplayHandler ipython_hook: InteractiveShell notebook_utils = None +jar_path: str = None +jar_autoattach: bool = True +log_info: bool = False diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index 3e75f7a5e..a3ff45110 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -6,6 +6,7 @@ class MosaicContext: + _context = None _geometry_api: str _index_system: str _mosaicContextClass: JavaClass @@ -42,26 +43,33 @@ def __init__(self, spark: SparkSession): # - access dynamically IndexSystem = self._indexSystemFactory.getIndexSystem(self._index_system) GeometryAPIClass = getattr(self._mosaicPackageObject, self._geometry_api) - _ = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) + self._context = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) def jContext(self): """ :return: dynamic getter for jvm MosaicContext object """ - return self._mosaicContextClass.context() + return self._context + + def jContextReset(self): + """ + Reset the MosaicContext jContext(). + - This requires a re-init essentially. + - Needed sometimes for checkpointing. + """ + self._mosaicContextClass.reset() def invoke_function(self, name: str, *args: Any) -> MosaicColumn: """ - use jContext() to invoke function. + use jvm context to invoke function. :param name: name of function. :param args: any passed args. :return: MosaicColumn. """ - _jcontext = self.jContext() - func = getattr(_jcontext.functions(), name) + func = getattr(self._context.functions(), name) return MosaicColumn(func(*args)) - def register(self, spark: SparkSession): + def jRegister(self, spark: SparkSession): """ Register SQL expressions. - the jvm functions for checkpointing handle after initial invoke @@ -70,12 +78,10 @@ def register(self, spark: SparkSession): """ optionClass = getattr(spark._sc._jvm.scala, "Option$") optionModule = getattr(optionClass, "MODULE$") - _jcontext = self.jContext() - _jcontext.register( - spark._jsparkSession, optionModule.apply(None) - ) + self._context.register(spark._jsparkSession, optionModule.apply(None)) + - def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): + def jEnableGDAL(self, spark: SparkSession, with_checkpoint_path: str = None): """ Enable GDAL, assumes regular enable already called. :param spark: session to use. @@ -86,7 +92,8 @@ def enable_gdal(self, spark: SparkSession, with_checkpoint_path: str = None): else: self._mosaicGDALObject.enableGDAL(spark._jsparkSession) - def update_checkpoint_path(self, spark: SparkSession, path: str): + + def jUpdateCheckpointPath(self, spark: SparkSession, path: str): """ Change the checkpoint location; does not adjust checkpoint on/off (stays as-is). :param spark: session to use. @@ -94,14 +101,14 @@ def update_checkpoint_path(self, spark: SparkSession, path: str): """ self._mosaicGDALObject.updateCheckpointPath(spark._jsparkSession, path) - def set_checkpoint_off(self, spark: SparkSession): + def jSetCheckpointOff(self, spark: SparkSession): """ Turn off checkpointing. :param spark: session to use. """ self._mosaicGDALObject.setCheckpointOff(spark._jsparkSession) - def set_checkpoint_on(self, spark: SparkSession): + def jSetCheckpointOn(self, spark: SparkSession): """ Turn on checkpointing, will use the configured path. :param spark: session to use. @@ -127,4 +134,4 @@ def get_checkpoint_path(self) -> str: return self._mosaicGDALObject.getCheckpointPath() def has_context(self) -> bool: - return self._mosaicContextClass.hasContext() + return self._context is not None diff --git a/python/test/context.py b/python/test/context.py index d118955b3..e910bf629 100644 --- a/python/test/context.py +++ b/python/test/context.py @@ -6,4 +6,5 @@ import mosaic.api as api import mosaic.readers as readers import mosaic.api.raster as rst +from mosaic.config import config from mosaic.core import MosaicContext, MosaicLibraryHandler diff --git a/python/test/test_checkpoint.py b/python/test/test_checkpoint.py new file mode 100644 index 000000000..390f31f8a --- /dev/null +++ b/python/test/test_checkpoint.py @@ -0,0 +1,76 @@ +from .context import api +from .utils import MosaicTestCaseWithGDAL +import os + +class TestCheckpoint(MosaicTestCaseWithGDAL): + def setUp(self) -> None: + return super().setUp() + + def test_mode(self): + self.assertEqual( + self.spark.conf.get("spark.databricks.labs.mosaic.test.mode"), "true", + "spark should have TEST_MODE set.") + + def test_context(self): + self.assertIsNotNone(self.get_context(), "python context should exist.") + self.assertTrue(self.get_context().has_context(), "jvm context should be initialized.") + + def test_checkpoint_path(self): + self.assertEqual( + self.get_context().get_checkpoint_path(), self.check_dir, + "checkpoint path should equal dir.") + self.assertEqual( + self.get_context().get_checkpoint_path(), + self.spark.conf.get("spark.databricks.labs.mosaic.raster.checkpoint"), + "checkpoint path should equal spark conf.") + + def test_checkpoint_on(self): + api.gdal.set_checkpoint_on(self.spark) # <- important to call from api.gdal + self.assertTrue(self.get_context().is_use_checkpoint(), "context should be configured on.") + + # - test an operation + result = ( + self.generate_singleband_raster_df() + .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) + .withColumn("tile", api.rst_clip("tile", "rst_boundingbox")) + ) + result.write.format("noop").mode("overwrite").save() + self.assertEqual(result.count(), 1) + tile = result.select("tile").first()[0] + raster = tile['raster'] + self.assertIsInstance(raster, str, "raster type should be string.") + + def test_update_checkpoint(self): + api.gdal.update_checkpoint_path(self.spark, self.new_check_dir) # <- important to call from api.gdal + self.assertEqual( + self.get_context().get_checkpoint_path(), self.new_check_dir, + "context should be configured on.") + self.assertTrue(os.path.exists(self.new_check_dir), "new check dir should exist.") + + # - test an operation + result = ( + self.generate_singleband_raster_df() + .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) + .withColumn("tile", api.rst_clip("tile", "rst_boundingbox")) + ) + result.write.format("noop").mode("overwrite").save() + self.assertEqual(result.count(), 1) + tile = result.select("tile").first()[0] + raster = tile['raster'] + self.assertIsInstance(raster, str, "raster type should be string.") + + def test_checkpoint_off(self): + api.gdal.set_checkpoint_off(self.spark) # <- important to call from api.gdal + self.assertFalse(self.get_context().is_use_checkpoint(), "context should be configured off.") + + # - test an operation + result = ( + self.generate_singleband_raster_df() + .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) + .withColumn("tile", api.rst_clip("tile", "rst_boundingbox")) + ) + result.write.format("noop").mode("overwrite").save() + self.assertEqual(result.count(), 1) + tile = result.select("tile").first()[0] + raster = tile['raster'] + self.assertNotIsInstance(raster, str, "raster type should be binary (not string).") diff --git a/python/test/test_fuse_install.py b/python/test/test_fuse_install.py index ec0d82745..b5b69fa5a 100644 --- a/python/test/test_fuse_install.py +++ b/python/test/test_fuse_install.py @@ -14,24 +14,6 @@ def test_setup_script_only(self): self.assertEqual(len(installer.list_files()),1) # <- script generated - def test_setup_jar(self): - installer = FuseInstaller(jar_copy=True, jni_so_copy=False) - try: - self.assertTrue(installer.do_op()) - except Exception: - self.fail("Executing `setup_fuse_install()` raised an exception.") - - self.assertEqual(len(installer.list_files()), 2) # <- init script and jar - - def test_setup_jni(self): - installer = FuseInstaller(jar_copy=False, jni_so_copy=True) - try: - self.assertTrue(installer.do_op()) - except Exception: - self.fail("Executing `setup_fuse_install()` raised an exception.") - - self.assertEqual(len(installer.list_files()), 4) # <- init script and so files - def test_setup_all(self): installer = FuseInstaller(jar_copy=True, jni_so_copy=True) try: diff --git a/python/test/test_mosaic.py b/python/test/test_mosaic.py index 149afd06c..f185189b3 100644 --- a/python/test/test_mosaic.py +++ b/python/test/test_mosaic.py @@ -1,5 +1,4 @@ from pyspark.sql.functions import _to_java_column, col - from .context import MosaicContext, MosaicLibraryHandler from .utils import SparkTestCase @@ -8,6 +7,11 @@ class TestMosaicContext(SparkTestCase): def setUp(self) -> None: return super().setUp() + def test_has_context(self): + _ = MosaicLibraryHandler(self.spark) + context = MosaicContext(self.spark) + self.assertTrue(context.has_context(), "JVM context should be available after python init.") + def test_invoke_function(self): _ = MosaicLibraryHandler(self.spark) context = MosaicContext(self.spark) diff --git a/python/test/utils/mosaic_test_case.py b/python/test/utils/mosaic_test_case.py index 30437c265..c3ecd9929 100644 --- a/python/test/utils/mosaic_test_case.py +++ b/python/test/utils/mosaic_test_case.py @@ -1,24 +1,27 @@ from test.context import api - +from test.context import config from pyspark.sql import DataFrame from pyspark.sql.functions import col, to_json - from mosaic import st_geomfromgeojson, st_point - from .spark_test_case import SparkTestCase class MosaicTestCase(SparkTestCase): + def setUp(self) -> None: - return super.setUp() + return super().setUp() @classmethod def setUpClass(cls) -> None: super().setUpClass() api.enable_mosaic(cls.spark) - def setUp(self) -> None: - return super().setUp() + @classmethod + def tearDownClass(cls) -> None: + super().tearDownClass() + + def get_context(self): + return config.mosaic_context def generate_input_single_linestring(self) -> DataFrame: return self.spark.createDataFrame( diff --git a/python/test/utils/mosaic_test_case_with_gdal.py b/python/test/utils/mosaic_test_case_with_gdal.py index 046e71674..bf47f8f60 100644 --- a/python/test/utils/mosaic_test_case_with_gdal.py +++ b/python/test/utils/mosaic_test_case_with_gdal.py @@ -1,20 +1,42 @@ from test.context import api - from .mosaic_test_case import MosaicTestCase - from pyspark.sql.dataframe import DataFrame +import os +import shutil + class MosaicTestCaseWithGDAL(MosaicTestCase): + check_dir = None + new_check_dir = None + def setUp(self) -> None: return super().setUp() @classmethod def setUpClass(cls) -> None: super().setUpClass() + + pwd_dir = os.getcwd() + cls.check_dir = f"{pwd_dir}/checkpoint" + cls.new_check_dir = f"{pwd_dir}/checkpoint-new" + if not os.path.exists(cls.check_dir): + os.makedirs(cls.check_dir) + if not os.path.exists(cls.new_check_dir): + os.makedirs(cls.new_check_dir) + cls.spark.conf.set("spark.databricks.labs.mosaic.raster.checkpoint", cls.check_dir) + api.enable_mosaic(cls.spark) api.enable_gdal(cls.spark) + @classmethod + def tearDownClass(cls) -> None: + super().tearDownClass() + if cls.check_dir is not None and os.path.exists(cls.check_dir): + shutil.rmtree(cls.check_dir) + if cls.new_check_dir is not None and os.path.exists(cls.new_check_dir): + shutil.rmtree(cls.new_check_dir) + def generate_singleband_raster_df(self) -> DataFrame: return ( self.spark.read.format("gdal") diff --git a/python/test/utils/spark_test_case.py b/python/test/utils/spark_test_case.py index fca3b5dec..af7a60f6a 100644 --- a/python/test/utils/spark_test_case.py +++ b/python/test/utils/spark_test_case.py @@ -1,5 +1,6 @@ import unittest import os +import shutil from importlib.metadata import version from pyspark.sql import SparkSession @@ -11,6 +12,7 @@ class SparkTestCase(unittest.TestCase): spark = None library_location = None log4jref = None + tmp_dir = None @classmethod def setUpClass(cls) -> None: @@ -19,12 +21,9 @@ def setUpClass(cls) -> None: cls.library_location = f"{mosaic.__path__[0]}/lib/mosaic-{version('databricks-mosaic')}-SNAPSHOT-jar-with-dependencies.jar" pwd_dir = os.getcwd() - tmp_dir = f"{pwd_dir}/mosaic_test/" - check_dir = f"{pwd_dir}/checkpoint" - if not os.path.exists(tmp_dir): - os.makedirs(tmp_dir) - if not os.path.exists(check_dir): - os.makedirs(check_dir) + cls.tmp_dir = f"{pwd_dir}/mosaic_test/" + if not os.path.exists(cls.tmp_dir): + os.makedirs(cls.tmp_dir) cls.spark = ( SparkSession.builder.master("local[*]") @@ -40,14 +39,16 @@ def setUpClass(cls) -> None: ) .getOrCreate() ) + cls.spark.conf.set("spark.databricks.labs.mosaic.test.mode", "true") cls.spark.conf.set("spark.databricks.labs.mosaic.jar.autoattach", "false") - cls.spark.conf.set("spark.databricks.labs.mosaic.raster.tmp.prefix", tmp_dir) - cls.spark.conf.set("spark.databricks.labs.mosaic.raster.checkpoint", check_dir) + cls.spark.conf.set("spark.databricks.labs.mosaic.raster.tmp.prefix", cls.tmp_dir) cls.spark.sparkContext.setLogLevel("ERROR") @classmethod def tearDownClass(cls) -> None: cls.spark.stop() + if cls.tmp_dir is not None and os.path.exists(cls.tmp_dir): + shutil.rmtree(cls.tmp_dir) def setUp(self) -> None: self.spark.sparkContext.setLogLevel("ERROR") diff --git a/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala index e9195e0ed..252043ff3 100644 --- a/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/core/raster/gdal/MosaicRasterGDAL.scala @@ -69,14 +69,14 @@ case class MosaicRasterGDAL( ///////////////////////////////////////// /** - * For the provided geometry and CRS, get bounding box polygon. - * @param geometryAPI - * Default is JTS. - * @param destCRS - * CRS for the bbox, default is [[MosaicGDAL.WSG84]]. - * @return - * Returns [[MosaicGeometry]] representing bounding box polygon. - */ + * For the provided geometry and CRS, get bounding box polygon. + * @param geometryAPI + * Default is JTS. + * @param destCRS + * CRS for the bbox, default is [[MosaicGDAL.WSG84]]. + * @return + * Returns [[MosaicGeometry]] representing bounding box polygon. + */ def bbox(geometryAPI: GeometryAPI, destCRS: SpatialReference = MosaicGDAL.WSG84): MosaicGeometry = { val gt = getGeoTransform @@ -116,12 +116,12 @@ case class MosaicRasterGDAL( def getGeoTransform: Array[Double] = raster.GetGeoTransform() /** - * @note - * If memory size is -1 this will destroy the raster and you will need to - * refresh it to use it again. - * @return - * Returns the amount of memory occupied by the file in bytes. - */ + * @note + * If memory size is -1 this will destroy the raster and you will need to + * refresh it to use it again. + * @return + * Returns the amount of memory occupied by the file in bytes. + */ def getMemSize: Long = { if (memSize == -1) { val toRead = if (path.startsWith("/vsizip/")) path.replace("/vsizip/", "") else path @@ -136,13 +136,13 @@ case class MosaicRasterGDAL( } /** - * Get spatial reference. - * - may be already set on the raster - * - if not, load and detect it. - * - defaults to [[MosaicGDAL.WSG84]] - * @return - * Raster's [[SpatialReference]] object. - */ + * Get spatial reference. + * - may be already set on the raster + * - if not, load and detect it. + * - defaults to [[MosaicGDAL.WSG84]] + * @return + * Raster's [[SpatialReference]] object. + */ def getSpatialReference: SpatialReference = { val spatialRef = if (raster != null) { @@ -211,12 +211,12 @@ case class MosaicRasterGDAL( def originY: Double = getGeoTransform(3) /** - * Opens a raster from a file system path. - * @param path - * The path to the raster file. - * @return - * A GDAL [[Dataset]] object. - */ + * Opens a raster from a file system path. + * @param path + * The path to the raster file. + * @return + * A GDAL [[Dataset]] object. + */ def pathAsDataset(path: String): Dataset = { MosaicRasterGDAL.pathAsDataset(path, driverShortName) } @@ -291,13 +291,13 @@ case class MosaicRasterGDAL( ///////////////////////////////////////// /** - * Applies a convolution filter to the raster. - * - operator applied per band. - * @param kernel - * [[Array[Double]]] kernel to apply to the raster. - * @return - * [[MosaicRasterGDAL]] object. - */ + * Applies a convolution filter to the raster. + * - operator applied per band. + * @param kernel + * [[Array[Double]]] kernel to apply to the raster. + * @return + * [[MosaicRasterGDAL]] object. + */ def convolve(kernel: Array[Array[Double]]): MosaicRasterGDAL = { val tmpPath = PathUtils.createTmpFilePath(getRasterFileExtension) @@ -325,14 +325,14 @@ case class MosaicRasterGDAL( } /** - * Applies a filter to the raster. - * @param kernelSize - * Number of pixels to compare; it must be odd. - * @param operation - * Op to apply, e.g. ‘avg’, ‘median’, ‘mode’, ‘max’, ‘min’. - * @return - * Returns a new [[MosaicRasterGDAL]] with the filter applied. - */ + * Applies a filter to the raster. + * @param kernelSize + * Number of pixels to compare; it must be odd. + * @param operation + * Op to apply, e.g. ‘avg’, ‘median’, ‘mode’, ‘max’, ‘min’. + * @return + * Returns a new [[MosaicRasterGDAL]] with the filter applied. + */ def filter(kernelSize: Int, operation: String): MosaicRasterGDAL = { val tmpPath = PathUtils.createTmpFilePath(getRasterFileExtension) @@ -390,12 +390,12 @@ case class MosaicRasterGDAL( ///////////////////////////////////////// /** - * Get a particular subdataset by name. - * @param subsetName - * The name of the subdataset to get. - * @return - * Returns [[MosaicRasterGDAL]]. - */ + * Get a particular subdataset by name. + * @param subsetName + * The name of the subdataset to get. + * @return + * Returns [[MosaicRasterGDAL]]. + */ def getSubdataset(subsetName: String): MosaicRasterGDAL = { val sPath = subdatasets.get(s"${subsetName}_tmp") val gdalError = gdal.GetLastErrorMsg() @@ -430,9 +430,9 @@ case class MosaicRasterGDAL( } /** - * Test if path is a subdataset. - * @return boolean - */ + * Test if path is a subdataset. + * @return boolean + */ def isSubDataset: Boolean = { val isSubdataset = PathUtils.isSubdataset(path) isSubdataset @@ -465,11 +465,11 @@ case class MosaicRasterGDAL( ///////////////////////////////////////// /** - * @param bandId - * The band index to read. - * @return - * Returns the raster's band as a [[MosaicRasterBandGDAL]] object. - */ + * @param bandId + * The band index to read. + * @return + * Returns the raster's band as a [[MosaicRasterBandGDAL]] object. + */ def getBand(bandId: Int): MosaicRasterBandGDAL = { if (bandId > 0 && numBands >= bandId) { MosaicRasterBandGDAL(raster.GetRasterBand(bandId), bandId) @@ -514,13 +514,13 @@ case class MosaicRasterGDAL( ///////////////////////////////////////// /** - * Cleans up the raster driver and references. - * - This will not clean up a file stored in a Databricks location, - * meaning DBFS, Volumes, or Workspace paths are skipped. - * Unlinks the raster file. After this operation the raster object is no - * longer usable. To be used as last step in expression after writing to - * bytes. - */ + * Cleans up the raster driver and references. + * - This will not clean up a file stored in a Databricks location, + * meaning DBFS, Volumes, or Workspace paths are skipped. + * Unlinks the raster file. After this operation the raster object is no + * longer usable. To be used as last step in expression after writing to + * bytes. + */ def cleanUp(): Unit = { // 0.4.2 - don't delete any fuse locations. if (!PathUtils.isFuseLocation(path) && path != PathUtils.getCleanPath(parentPath)) { @@ -567,12 +567,12 @@ case class MosaicRasterGDAL( } /** - * Writes a raster to a byte array. - * @param dispose - * Whether to dispose of the raster object, default is true. - * @return - * A byte array containing the raster data. - */ + * Writes a raster to a byte array. + * @param dispose + * Whether to dispose of the raster object, default is true. + * @return + * A byte array containing the raster data. + */ def writeToBytes(dispose: Boolean = true): Array[Byte] = { val readPath = { val tmpPath = @@ -609,15 +609,15 @@ case class MosaicRasterGDAL( } /** - * Writes a raster to a file system path. This method disposes of the - * raster object. If the raster is needed again, load it from the path. - * @param newPath - * The path to the raster file. - * @param dispose - * Whether to dispose of the raster object, default is true. - * @return - * The path where written. - */ + * Writes a raster to a file system path. This method disposes of the + * raster object. If the raster is needed again, load it from the path. + * @param newPath + * The path to the raster file. + * @param dispose + * Whether to dispose of the raster object, default is true. + * @return + * The path where written. + */ def writeToPath(newPath: String, dispose: Boolean = true): String = { if (isSubDataset) { val driver = raster.GetDriver() @@ -695,15 +695,15 @@ object MosaicRasterGDAL extends RasterReader { } /** - * Opens a raster from a file system path with a given driver. - * @param path - * The path to the raster file. - * @param driverShortName - * The driver short name to use. If None, then GDAL will try to identify - * the driver from the file extension - * @return - * A GDAL [[Dataset]] object. - */ + * Opens a raster from a file system path with a given driver. + * @param path + * The path to the raster file. + * @param driverShortName + * The driver short name to use. If None, then GDAL will try to identify + * the driver from the file extension + * @return + * A GDAL [[Dataset]] object. + */ def pathAsDataset(path: String, driverShortName: Option[String]): Dataset = { driverShortName match { case Some(driverShortName) => @@ -715,18 +715,18 @@ object MosaicRasterGDAL extends RasterReader { } /** - * Reads a raster band from a file system path. Reads a subdataset band if - * the path is to a subdataset. - * @example - * Raster: path = "/path/to/file.tif" Subdataset: path = - * "FORMAT:/path/to/file.tif:subdataset" - * @param bandIndex - * The band index to read (1+ indexed). - * @param createInfo - * Map of create info for the raster. - * @return - * A [[MosaicRasterGDAL]] object. - */ + * Reads a raster band from a file system path. Reads a subdataset band if + * the path is to a subdataset. + * @example + * Raster: path = "/path/to/file.tif" Subdataset: path = + * "FORMAT:/path/to/file.tif:subdataset" + * @param bandIndex + * The band index to read (1+ indexed). + * @param createInfo + * Map of create info for the raster. + * @return + * A [[MosaicRasterGDAL]] object. + */ override def readBand(bandIndex: Int, createInfo: Map[String, String]): MosaicRasterBandGDAL = { val raster = readRaster(createInfo) // Note: Raster and Band are coupled, this can cause a pointer leak @@ -786,16 +786,16 @@ object MosaicRasterGDAL extends RasterReader { } /** - * Reads a raster from a file system path. Reads a subdataset if the path - * is to a subdataset. - * @example - * Raster: path = "/path/to/file.tif" Subdataset: path = - * "FORMAT:/path/to/file.tif:subdataset" - * @param createInfo - * Map of create info for the raster. - * @return - * A [[MosaicRasterGDAL]] object. - */ + * Reads a raster from a file system path. Reads a subdataset if the path + * is to a subdataset. + * @example + * Raster: path = "/path/to/file.tif" Subdataset: path = + * "FORMAT:/path/to/file.tif:subdataset" + * @param createInfo + * Map of create info for the raster. + * @return + * A [[MosaicRasterGDAL]] object. + */ override def readRaster(createInfo: Map[String, String]): MosaicRasterGDAL = { val inPath = createInfo("path") val isSubdataset = PathUtils.isSubdataset(inPath) diff --git a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala index 5c257e557..9736d9081 100644 --- a/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala +++ b/src/main/scala/com/databricks/labs/mosaic/functions/MosaicContext.scala @@ -549,8 +549,6 @@ class MosaicContext(indexSystem: IndexSystem, geometryAPI: GeometryAPI) extends } - def hasContext: Boolean = this.hasContext - def getGeometryAPI: GeometryAPI = this.geometryAPI def getIndexSystem: IndexSystem = this.indexSystem @@ -1090,7 +1088,7 @@ object MosaicContext extends Logging { case None => throw new Error("MosaicContext was not built.") } - def hasContext: Boolean = + def checkContext: Boolean = instance match { case Some(_) => true case None => false diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index 335a7e841..3a20fe808 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -207,7 +207,7 @@ object MosaicGDAL extends Logging { // - necessary to register with the latest context // - registers spark expressions with the new config // - will make sure the session is consistent with these settings - if (!MosaicContext.hasContext) { + if (!MosaicContext.checkContext) { val mosaicConfig = MosaicExpressionConfig(spark) val indexSystem = IndexSystemFactory.getIndexSystem(mosaicConfig.getIndexSystem) val geometryAPI = GeometryAPI.apply(mosaicConfig.getGeometryAPI) From 705970cdfcb07f4c1a417b93b26aa40c1e6bb4c9 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Mon, 20 May 2024 21:56:29 -0400 Subject: [PATCH 34/38] reset checkpoint support, additional testing. --- python/mosaic/api/enable.py | 3 -- python/mosaic/api/gdal.py | 21 ++++++++++++ python/mosaic/core/mosaic_context.py | 19 +++++++++-- python/test/test_checkpoint.py | 34 +++++++++++++------ .../labs/mosaic/gdal/MosaicGDAL.scala | 22 ++++++++++-- 5 files changed, 80 insertions(+), 19 deletions(-) diff --git a/python/mosaic/api/enable.py b/python/mosaic/api/enable.py index 7f954a4ef..b2187b9ae 100644 --- a/python/mosaic/api/enable.py +++ b/python/mosaic/api/enable.py @@ -111,7 +111,4 @@ def refresh_context(): Refresh mosaic context, using previously configured information. - This is needed when spark configs change, such as for checkpointing. """ - # set global config objects - # - re-init mosaic context config.mosaic_context.jContextReset() - config.mosaic_context = MosaicContext(config.mosaic_spark) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 33c37d253..898072937 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -130,6 +130,19 @@ def set_checkpoint_on(spark: SparkSession): config.mosaic_context.jSetCheckpointOn(spark) +def reset_checkpoint(spark: SparkSession): + """ + Go back to defaults. + - spark conf unset for use checkpoint (off) + - spark conf unset for checkpoint path + :param spark: session to use. + """ + spark.conf.set("spark.databricks.labs.mosaic.raster.use.checkpoint", "false") + spark.conf.set("spark.databricks.labs.mosaic.raster.checkpoint", get_checkpoint_path_default()) + refresh_context() + config.mosaic_context.jResetCheckpoint(spark) + + ################################################################# # GETTERS ################################################################# @@ -161,3 +174,11 @@ def get_checkpoint_path() -> str: :return: checkpoint path or exception. """ return config.mosaic_context.get_checkpoint_path() + + +def get_checkpoint_path_default() -> str: + """ + This is run on the driver, assumes enable.py already invoked. + :return: default checkpoint path. + """ + return config.mosaic_context.get_checkpoint_path_default() diff --git a/python/mosaic/core/mosaic_context.py b/python/mosaic/core/mosaic_context.py index a3ff45110..7edf25cae 100644 --- a/python/mosaic/core/mosaic_context.py +++ b/python/mosaic/core/mosaic_context.py @@ -16,9 +16,8 @@ class MosaicContext: def __init__(self, spark: SparkSession): sc = spark.sparkContext - self._mosaicContextClass = getattr( - sc._jvm.com.databricks.labs.mosaic.functions, "MosaicContext" - ) + + self._mosaicContextClass = getattr(sc._jvm.com.databricks.labs.mosaic.functions, "MosaicContext") self._mosaicPackageRef = getattr(sc._jvm.com.databricks.labs.mosaic, "package$") self._mosaicPackageObject = getattr(self._mosaicPackageRef, "MODULE$") self._mosaicGDALObject = getattr(sc._jvm.com.databricks.labs.mosaic.gdal, "MosaicGDAL") @@ -58,6 +57,9 @@ def jContextReset(self): - Needed sometimes for checkpointing. """ self._mosaicContextClass.reset() + IndexSystem = self._indexSystemFactory.getIndexSystem(self._index_system) + GeometryAPIClass = getattr(self._mosaicPackageObject, self._geometry_api) + self._context = self._mosaicContextClass.build(IndexSystem, GeometryAPIClass()) def invoke_function(self, name: str, *args: Any) -> MosaicColumn: """ @@ -80,6 +82,14 @@ def jRegister(self, spark: SparkSession): optionModule = getattr(optionClass, "MODULE$") self._context.register(spark._jsparkSession, optionModule.apply(None)) + def jResetCheckpoint(self, spark: SparkSession): + """ + Go back to defaults. + - spark conf unset for use checkpoint (off) + - spark conf unset for checkpoint path + :param spark: session to use. + """ + self._mosaicGDALObject.resetCheckpoint(spark._jsparkSession) def jEnableGDAL(self, spark: SparkSession, with_checkpoint_path: str = None): """ @@ -133,5 +143,8 @@ def is_use_checkpoint(self) -> bool: def get_checkpoint_path(self) -> str: return self._mosaicGDALObject.getCheckpointPath() + def get_checkpoint_path_default(self) -> str: + return self._mosaicGDALObject.getCheckpointPathDefault() + def has_context(self) -> bool: return self._context is not None diff --git a/python/test/test_checkpoint.py b/python/test/test_checkpoint.py index 390f31f8a..b756e46ad 100644 --- a/python/test/test_checkpoint.py +++ b/python/test/test_checkpoint.py @@ -6,16 +6,16 @@ class TestCheckpoint(MosaicTestCaseWithGDAL): def setUp(self) -> None: return super().setUp() - def test_mode(self): + def test_all(self): self.assertEqual( self.spark.conf.get("spark.databricks.labs.mosaic.test.mode"), "true", "spark should have TEST_MODE set.") - def test_context(self): + # - context self.assertIsNotNone(self.get_context(), "python context should exist.") self.assertTrue(self.get_context().has_context(), "jvm context should be initialized.") - def test_checkpoint_path(self): + # - path self.assertEqual( self.get_context().get_checkpoint_path(), self.check_dir, "checkpoint path should equal dir.") @@ -24,11 +24,9 @@ def test_checkpoint_path(self): self.spark.conf.get("spark.databricks.labs.mosaic.raster.checkpoint"), "checkpoint path should equal spark conf.") - def test_checkpoint_on(self): + # - checkpoint on api.gdal.set_checkpoint_on(self.spark) # <- important to call from api.gdal self.assertTrue(self.get_context().is_use_checkpoint(), "context should be configured on.") - - # - test an operation result = ( self.generate_singleband_raster_df() .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) @@ -40,14 +38,12 @@ def test_checkpoint_on(self): raster = tile['raster'] self.assertIsInstance(raster, str, "raster type should be string.") - def test_update_checkpoint(self): + # - update path api.gdal.update_checkpoint_path(self.spark, self.new_check_dir) # <- important to call from api.gdal self.assertEqual( self.get_context().get_checkpoint_path(), self.new_check_dir, "context should be configured on.") self.assertTrue(os.path.exists(self.new_check_dir), "new check dir should exist.") - - # - test an operation result = ( self.generate_singleband_raster_df() .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) @@ -59,11 +55,27 @@ def test_update_checkpoint(self): raster = tile['raster'] self.assertIsInstance(raster, str, "raster type should be string.") - def test_checkpoint_off(self): + # - checkpoint off api.gdal.set_checkpoint_off(self.spark) # <- important to call from api.gdal self.assertFalse(self.get_context().is_use_checkpoint(), "context should be configured off.") + result = ( + self.generate_singleband_raster_df() + .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) + .withColumn("tile", api.rst_clip("tile", "rst_boundingbox")) + ) + result.write.format("noop").mode("overwrite").save() + self.assertEqual(result.count(), 1) + tile = result.select("tile").first()[0] + raster = tile['raster'] + self.assertNotIsInstance(raster, str, "raster type should be binary (not string).") - # - test an operation + # - reset + api.gdal.reset_checkpoint(self.spark) + self.assertFalse(self.get_context().is_use_checkpoint(), "context should be configured off.") + self.assertEqual( + self.get_context().get_checkpoint_path(), api.gdal.get_checkpoint_path_default(), + f"checkpoint path should equal default '{api.gdal.get_checkpoint_path_default()}'." + ) result = ( self.generate_singleband_raster_df() .withColumn("rst_boundingbox", api.rst_boundingbox("tile")) diff --git a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala index 3a20fe808..12986d601 100644 --- a/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala +++ b/src/main/scala/com/databricks/labs/mosaic/gdal/MosaicGDAL.scala @@ -2,7 +2,7 @@ package com.databricks.labs.mosaic.gdal import com.databricks.labs.mosaic.core.geometry.api.GeometryAPI import com.databricks.labs.mosaic.core.index.IndexSystemFactory -import com.databricks.labs.mosaic.{MOSAIC_RASTER_BLOCKSIZE_DEFAULT, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_TEST_MODE} +import com.databricks.labs.mosaic.{MOSAIC_RASTER_BLOCKSIZE_DEFAULT, MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_CHECKPOINT_DEFAULT, MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT, MOSAIC_TEST_MODE} import com.databricks.labs.mosaic.functions.{MosaicContext, MosaicExpressionConfig} import com.databricks.labs.mosaic.utils.PathUtils import org.apache.spark.internal.Logging @@ -142,6 +142,21 @@ object MosaicGDAL extends Logging { logInfo(s"Checkpoint enabled for this session under $checkpointPath (overrides existing spark confs).") } + /** + * Go back to defaults. + * - spark conf unset for use checkpoint (off). + * - spark conf unset for checkpoint path. + * - see mosaic_context.py as well for use. + * + * @param spark + * spark session to use. + */ + def resetCheckpoint(spark: SparkSession): Unit = { + spark.conf.set(MOSAIC_RASTER_USE_CHECKPOINT, MOSAIC_RASTER_USE_CHECKPOINT_DEFAULT) + spark.conf.set(MOSAIC_RASTER_CHECKPOINT, MOSAIC_RASTER_CHECKPOINT_DEFAULT) + updateMosaicContext(spark) + } + /** * Update the checkpoint path. * - will make dirs if conditions met. @@ -245,7 +260,10 @@ object MosaicGDAL extends Logging { /** @return value of useCheckpoint. */ def isUseCheckpoint: Boolean = this.useCheckpoint - /** return value of checkpointPath. */ + /** @return value of checkpoint path. */ def getCheckpointPath: String = this.checkpointPath + /** @return default value of checkpoint path. */ + def getCheckpointPathDefault: String = MOSAIC_RASTER_CHECKPOINT_DEFAULT + } From a3fee82bf0e35eeb2b2cbd5ce5769d3436d5b8c7 Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 21 May 2024 09:35:46 -0400 Subject: [PATCH 35/38] new functions to gdal __all__ --- python/mosaic/api/gdal.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python/mosaic/api/gdal.py b/python/mosaic/api/gdal.py index 898072937..d7e88a47e 100644 --- a/python/mosaic/api/gdal.py +++ b/python/mosaic/api/gdal.py @@ -8,7 +8,8 @@ __all__ = [ "setup_gdal", "enable_gdal", "update_checkpoint_path", "set_checkpoint_on", "set_checkpoint_off", - "has_context", "is_use_checkpoint", "get_checkpoint_path" + "has_context", "is_use_checkpoint", "get_checkpoint_path", "reset_checkpoint", + "get_checkpoint_path_default" ] From ef3ee9a3a000b6497405de905a7cd35bacebc3cc Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Tue, 21 May 2024 10:31:39 -0400 Subject: [PATCH 36/38] small commit to trigger github build. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9a4d0719..3caba11ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ - Expanded support for fuse-based checkpointing (persisted raster storage), managed through: - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. - python: `mos.enable_gdal(spark, with_checkpoint_path=path)`. - - scala: `MosaicGDAL.enableGDALWithCheckpoint(spark, path) function`. + - scala: `MosaicGDAL.enableGDALWithCheckpoint(spark, path)`. ## v0.4.2 [DBR 13.3 LTS] - Geopandas now fixed to "<0.14.4,>=0.14" due to conflict with minimum numpy version in geopandas 0.14.4. From 2e3f3bdee1379519394ea471d85b1d671a69268d Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Fri, 24 May 2024 13:36:53 -0400 Subject: [PATCH 37/38] changelog, docker, and pyspark version changes. --- .github/workflows/build_main.yml | 2 +- .github/workflows/build_python.yml | 2 +- .github/workflows/build_r.yml | 2 +- .github/workflows/build_scala.yml | 2 +- .github/workflows/pypi-release.yml | 2 +- .gitignore | 1 + CHANGELOG.md | 5 +- CONTRIBUTING.md | 2 +- docs/source/api/rasterio-udfs.rst | 1 - pom.xml | 4 +- python/setup.cfg | 1 + scripts/docker/README.md | 28 +++++ .../ubuntu-22-spark-3.4/Dockerfile.template | 115 ++++++++++++++++++ .../docker-build/ubuntu-22-spark-3.4/build | 12 ++ scripts/docker/docker_init.sh | 27 ++++ scripts/docker/exec-shell.sh | 3 + scripts/{ => docker}/m2/settings.xml | 2 +- scripts/docker/mosaic-docker.sh | 23 ++++ scripts/m2/mvn_init.sh | 48 -------- scripts/mosaic-docker.sh | 17 --- .../expressions/raster/RST_MakeTiles.scala | 1 - 21 files changed, 221 insertions(+), 79 deletions(-) create mode 100644 scripts/docker/README.md create mode 100755 scripts/docker/docker-build/ubuntu-22-spark-3.4/Dockerfile.template create mode 100755 scripts/docker/docker-build/ubuntu-22-spark-3.4/build create mode 100755 scripts/docker/docker_init.sh create mode 100644 scripts/docker/exec-shell.sh rename scripts/{ => docker}/m2/settings.xml (87%) create mode 100644 scripts/docker/mosaic-docker.sh delete mode 100755 scripts/m2/mvn_init.sh delete mode 100644 scripts/mosaic-docker.sh diff --git a/.github/workflows/build_main.yml b/.github/workflows/build_main.yml index f1088a5b6..8a0660111 100644 --- a/.github/workflows/build_main.yml +++ b/.github/workflows/build_main.yml @@ -19,7 +19,7 @@ jobs: python: [ 3.10.12 ] numpy: [ 1.22.4 ] gdal: [ 3.4.1 ] - spark: [ 3.4.0 ] + spark: [ 3.4.1 ] R: [ 4.2.2 ] steps: - name: checkout code diff --git a/.github/workflows/build_python.yml b/.github/workflows/build_python.yml index 30d62cb3c..1b766a2e3 100644 --- a/.github/workflows/build_python.yml +++ b/.github/workflows/build_python.yml @@ -15,7 +15,7 @@ jobs: python: [ 3.10.12 ] numpy: [ 1.22.4 ] gdal: [ 3.4.1 ] - spark: [ 3.4.0 ] + spark: [ 3.4.1 ] R: [ 4.2.2 ] steps: - name: checkout code diff --git a/.github/workflows/build_r.yml b/.github/workflows/build_r.yml index 986ca744d..4c6ad732f 100644 --- a/.github/workflows/build_r.yml +++ b/.github/workflows/build_r.yml @@ -16,7 +16,7 @@ jobs: python: [ 3.10.12 ] numpy: [ 1.22.4 ] gdal: [ 3.4.1 ] - spark: [ 3.4.0 ] + spark: [ 3.4.1 ] R: [ 4.2.2 ] steps: - name: checkout code diff --git a/.github/workflows/build_scala.yml b/.github/workflows/build_scala.yml index ba464022e..b804b491e 100644 --- a/.github/workflows/build_scala.yml +++ b/.github/workflows/build_scala.yml @@ -14,7 +14,7 @@ jobs: python: [ 3.10.12 ] numpy: [ 1.22.4 ] gdal: [ 3.4.1 ] - spark: [ 3.4.0 ] + spark: [ 3.4.1 ] R: [ 4.2.2 ] steps: - name: checkout code diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 251ead879..30396423e 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -12,7 +12,7 @@ jobs: python: [ 3.10.12 ] numpy: [ 1.22.4 ] gdal: [ 3.4.1 ] - spark: [ 3.4.0 ] + spark: [ 3.4.1 ] R: [ 4.2.2 ] steps: - name: checkout code diff --git a/.gitignore b/.gitignore index 79c7d5635..7d56ac217 100644 --- a/.gitignore +++ b/.gitignore @@ -164,3 +164,4 @@ docker/.m2/ /python/mosaic_test/ /python/checkpoint/ /python/checkpoint-new/ +/scripts/docker/docker-build/ubuntu-22-spark-3.4/Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 3caba11ab..4b25672d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,7 @@ ## v0.4.3 [DBR 13.3 LTS] -- Pyspark requirement removed from python setup.cfg as it is supplied by DBR -- iPython dependency limited to "<8.11,>=7.4.2" for both DBR and keplergl-jupyter - Python version limited to "<3.11,>=3.10" for DBR -- Fixes 'raster_to_grid' reader tessellation issue affecting some NetCDFs; also adding repartitioning for better performance. +- Pyspark version limited to 3.4.1 for DBR +- iPython dependency limited to "<8.11,>=7.4.2" for both DBR and keplergl-jupyter - Expanded support for fuse-based checkpointing (persisted raster storage), managed through: - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. - python: `mos.enable_gdal(spark, with_checkpoint_path=path)`. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0684cca0b..ea82645e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,7 +84,7 @@ The repository is structured as follows: ## Test & build Mosaic Given that DBR 13.3 is Ubuntu 22.04, we recommend using docker, -see [mosaic-docker.sh](https://github.com/databrickslabs/mosaic/blob/main/scripts/mosaic-docker.sh). +see [mosaic-docker.sh](https://github.com/databrickslabs/mosaic/blob/main/scripts/docker/mosaic-docker.sh). ### Scala JAR diff --git a/docs/source/api/rasterio-udfs.rst b/docs/source/api/rasterio-udfs.rst index 339223c58..46cf46f77 100644 --- a/docs/source/api/rasterio-udfs.rst +++ b/docs/source/api/rasterio-udfs.rst @@ -248,7 +248,6 @@ depending on your needs. def write_raster(raster, driver, file_id, fuse_dir): from io import BytesIO from pathlib import Path - from pyspark.sql.functions import udf from rasterio.io import MemoryFile import numpy as np import rasterio diff --git a/pom.xml b/pom.xml index ec0311f4c..d41e60a04 100644 --- a/pom.xml +++ b/pom.xml @@ -256,7 +256,7 @@ 2.12.10 2.12 - 3.4.0 + 3.4.1 0.4.3 @@ -291,7 +291,7 @@ 2.12.10 2.12 - 3.4.0 + 3.4.1 0.4.3 1.8 1.8 diff --git a/python/setup.cfg b/python/setup.cfg index 4ffd3dc94..6b4cb7de8 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -22,6 +22,7 @@ install_requires = h3<4.0,>=3.7 ipython<8.11,>=7.4.2 keplergl==0.3.2 + pyspark==3.4.1 [options.package_data] mosaic = diff --git a/scripts/docker/README.md b/scripts/docker/README.md new file mode 100644 index 000000000..4e6a37c32 --- /dev/null +++ b/scripts/docker/README.md @@ -0,0 +1,28 @@ +# Docker Build + +> This is adapted from [Mosaic-Docker](https://github.com/r3stl355/mosaic-docker) repo, focused on DBR 13.3 LTS which is Ubuntu 22.04. +> It is needed when you want to build and run tests on non Ubuntu Jammy machines, e.g. MacOS. + +## Steps + +1. Cmd `GDAL_VERSION=3.4.1 LIBPROJ_VERSION=7.1.0 SPARK_VERSION=3.4.1 CORES=4 ./build` + builds the docker image for DBR 13.3 LTS. Name will be 'mosaic-dev:ubuntu22-gdal3.4.1-spark3.4.1'. +2. Cmd `sh scripts/docker/mosaic-docker.sh` to run. That script launches a container and further (optionally) configures. + +## Additional Notes + +* Image is configured to JDK 8 to match DBR 13; python 3.10 as well +* Support IDE driven or Jupyter notebook testing in addition to straight shell, + see more at [Mosaic-Docker](https://github.com/r3stl355/mosaic-docker). Recommend placing any test notebooks + in '/python/notebooks' which is already added to .gitignore +* If you want to run tests within a container shell: + - `unset JAVA_TOOL_OPTIONS` is needed to execute JVM tests + - then can test e.g. `mvn -X test -DskipTests=false -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` + and `python3 -m unittest mosaic test/test_fuse_install.py` from ./python dir + - you may need to run `mvn clean` occasionally, especially around initial setup as intellij is JDK 11 (pom.xml) + and docker is JDK 8 + - you don't need to specify -PskipCoverage (see 'm2/settings.xml' and pom.xml) +* Get shell with `docker exec -it mosaic-dev /bin/bash -c "unset JAVA_TOOL_OPTIONS && cd /root/mosaic && /bin/bash"`, + can have multiple shells going; call `sh scripts/docker/exec-shell.sh` also +* `docker stop mosaic-dev` whenever done to terminate the container +* NOTE: Ignore 'ERRO[0000] error waiting for container: context canceled' if you get this on MacOS \ No newline at end of file diff --git a/scripts/docker/docker-build/ubuntu-22-spark-3.4/Dockerfile.template b/scripts/docker/docker-build/ubuntu-22-spark-3.4/Dockerfile.template new file mode 100755 index 000000000..173452a6c --- /dev/null +++ b/scripts/docker/docker-build/ubuntu-22-spark-3.4/Dockerfile.template @@ -0,0 +1,115 @@ +FROM --platform=linux/amd64 ubuntu:22.04 + +# refresh package info +RUN apt-get update -y + +# Install OpenJDK 8 +RUN apt-get install -y openjdk-8-jdk --no-install-recommends + +# Install native dependencies +RUN apt-get install -y python3-numpy unixodbc libcurl3-gnutls libsnappy-dev libopenjp2-7 + +ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 + +# Install dependencies +RUN set -ex \ + && deps=" \ + python3-dev \ + python3-numpy \ + python3-pip \ + python3-venv \ + bash-completion \ + libspatialite-dev \ + libpq-dev \ + libcurl4-gnutls-dev \ + libxml2-dev \ + libgeos-dev \ + libnetcdf-dev \ + libpoppler-dev \ + libhdf4-alt-dev \ + libhdf5-serial-dev \ + libpoppler-private-dev \ + sqlite3 \ + libsqlite3-dev \ + libtiff-dev \ + wget \ + curl \ + " \ + && buildDeps=" \ + build-essential \ + cmake \ + swig \ + ant \ + pkg-config \ + "\ + && apt-get update -y && apt-get install -y $buildDeps $deps --no-install-recommends + +# Install the remaining components +ENV ROOTDIR /usr/local +ENV LD_LIBRARY_PATH /usr/local/lib +ENV SPARK_VERSION %%SPARK_VERSION%% +ENV GDAL_VERSION %%GDAL_VERSION%% +ENV LIBPROJ_VERSION %%LIBPROJ_VERSION%% +ENV CORES %%CORES%% + +WORKDIR $ROOTDIR/ +RUN mkdir -p $ROOTDIR/src + +# Install PROJ +RUN wget -qO- https://download.osgeo.org/proj/proj-${LIBPROJ_VERSION}.tar.gz | \ + tar -xzC $ROOTDIR/src/ + +RUN cd src/proj-${LIBPROJ_VERSION} && ./configure && make -j${CORES} && make install \ + && cd $ROOTDIR && rm -Rf src/proj* + +# Install GDAL +RUN wget -qO- https://download.osgeo.org/gdal/${GDAL_VERSION}/gdal-${GDAL_VERSION}.tar.gz | \ + tar -xzC $ROOTDIR/src/ + +RUN cd src/gdal-${GDAL_VERSION} \ + && ./configure --with-java=$JAVA_HOME \ + && make -j${CORES} && make -j${CORES} install && ldconfig + +# Install Java bindings for GDAL +RUN cd $ROOTDIR/src/gdal-${GDAL_VERSION}/swig/java && make -j${CORES} && make -j${CORES} install + +# Copy binaries to the location expected to be by Mosaic +RUN ln -s $ROOTDIR/lib/libgdal.so /usr/lib/libgdal.so +RUN ln -s $ROOTDIR/lib/libgdal.so.30 /usr/lib/libgdal.so.30 +RUN ln -s $ROOTDIR/lib/libgdal.so.30.0.3 /usr/lib/libgdal.so.30.0.3 +RUN mkdir -p /usr/lib/jni && ln -s $ROOTDIR/lib/libgdalalljni.so /usr/lib/jni/libgdalalljni.so.30 +RUN mkdir -p /usr/lib/ogdi && ln -s $ROOTDIR/lib/libgdal.so /usr/lib/ogdi/libgdal.so + +# Add Maven +ARG MAVEN_VERSION=3.9.6 +ARG USER_HOME_DIR="/root" +ARG BASE_URL=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries +ARG ARG SHA=706f01b20dec0305a822ab614d51f32b07ee11d0218175e55450242e49d2156386483b506b3a4e8a03ac8611bae96395fd5eec15f50d3013d5deed6d1ee18224 + +RUN mkdir -p $ROOTDIR/share/maven $ROOTDIR/share/maven/ref \ + && echo "Downlaoding maven" \ + && curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ + \ + && echo "Checking download hash" \ + && echo "${SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \ + \ + && echo "Unziping maven" \ + && tar -xzf /tmp/apache-maven.tar.gz -C $ROOTDIR/share/maven --strip-components=1 \ + \ + && echo "Cleaning and setting links" \ + && rm -f /tmp/apache-maven.tar.gz \ + && ln -s $ROOTDIR/share/maven/bin/mvn $ROOTDIR/bin/mvn + +ENV MAVEN_HOME $ROOTDIR/share/maven +ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" + +# Python packages +# - Adds additional needed packages +RUN pip3 install pip --upgrade +RUN pip3 install build wheel keplergl ipython pyspark==$SPARK_VERSION +RUN pip3 install black build isort py4j requests +RUN pip3 install gdal==$GDAL_VERSION + +# Clean up +RUN apt-get purge -y --auto-remove $buildDeps \ + && rm -rf /var/lib/apt/lists/* diff --git a/scripts/docker/docker-build/ubuntu-22-spark-3.4/build b/scripts/docker/docker-build/ubuntu-22-spark-3.4/build new file mode 100755 index 000000000..f3be3419c --- /dev/null +++ b/scripts/docker/docker-build/ubuntu-22-spark-3.4/build @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +sed -e "s/%%GDAL_VERSION%%/$GDAL_VERSION/" \ + -e "s/%%LIBPROJ_VERSION%%/$LIBPROJ_VERSION/" \ + -e "s/%%SPARK_VERSION%%/$SPARK_VERSION/" \ + -e "s/%%CORES%%/$CORES/" "Dockerfile.template" > Dockerfile + +# use --no-cache to force clean build +#docker build --no-cache -t "mosaic-dev:ubuntu22-gdal$GDAL_VERSION-spark$SPARK_VERSION" . +docker build -t "mosaic-dev:ubuntu22-gdal$GDAL_VERSION-spark$SPARK_VERSION" . \ No newline at end of file diff --git a/scripts/docker/docker_init.sh b/scripts/docker/docker_init.sh new file mode 100755 index 000000000..6c8b468c6 --- /dev/null +++ b/scripts/docker/docker_init.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# [1] unset variable for this script +echo "\n::: [1] ... unsetting JAVA_TOOL_OPTIONS (probably need to do in container as well) :::" +unset JAVA_TOOL_OPTIONS + +# [2] copy custom settings.xml +# - defaults to new skipScoverage profile +# - compliments the pom config (profile sCoverage also added there) +# - sets .m2 folder to be in project +echo "\n::: [2] ... setting up new .m2 (in project) + new skipScoverage profile (as default) :::" +mv /usr/local/share/maven/conf/settings.xml /usr/local/share/maven/conf/settings.xml.BAK +cp /root/mosaic/scripts/docker/m2/settings.xml /usr/local/share/maven/conf +echo " ... mvn active profile(s)\n" +cd /root/mosaic && mvn help:active-profiles + +# [3] build JVM code +# this is building for container JDK +# see settings.xml for overrides +echo "\n::: [3] ... maven package - JVM code version? :::\n" +echo " $(javac -version)" +cd /root/mosaic && mvn package -DskipTests + +# [4] build python +# - refer to dockerfile for what is already built +echo "\n::: [4] ... build python :::\n" +cd /root/mosaic/python && pip install . \ No newline at end of file diff --git a/scripts/docker/exec-shell.sh b/scripts/docker/exec-shell.sh new file mode 100644 index 000000000..c2efc3c49 --- /dev/null +++ b/scripts/docker/exec-shell.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker exec -it mosaic-dev /bin/bash -c "unset JAVA_TOOL_OPTIONS && cd /root/mosaic && /bin/bash" \ No newline at end of file diff --git a/scripts/m2/settings.xml b/scripts/docker/m2/settings.xml similarity index 87% rename from scripts/m2/settings.xml rename to scripts/docker/m2/settings.xml index 224b5efc7..46f695264 100644 --- a/scripts/m2/settings.xml +++ b/scripts/docker/m2/settings.xml @@ -5,7 +5,7 @@ | | Default: ${user.home}/.m2/repository --> - /root/mosaic/scripts/m2 + /root/mosaic/scripts/docker/m2 skipScoverage diff --git a/scripts/docker/mosaic-docker.sh b/scripts/docker/mosaic-docker.sh new file mode 100644 index 000000000..ccf39c049 --- /dev/null +++ b/scripts/docker/mosaic-docker.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# [1] Build the image under 'docker-build': +# `GDAL_VERSION=3.4.1 LIBPROJ_VERSION=7.1.0 SPARK_VERSION=3.4.1 CORES=4 ./build` +# - produces image 'ubuntu22-gdal3.4.1-spark3.4.1' [default is JDK 8] +# [2] run this in root of (mosaic repo), e.g. `sh scripts/docker/mosaic-docker.sh` +# - for IDE driven or Jupyter notebook testing +# [3] if you want to run tests within the container shell +# - [a] `unset JAVA_TOOL_OPTIONS` is needed to execute JVM tests +# - [b] then can test e.g. `mvn -X test -DskipTests=false -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` +# and `python3 -m unittest mosaic test/test_fuse_install.py` from ./python dir +# - [c] you may need to run `mvn clean` occasionally, especially around initial setup as intellij is JDK 11 +# and docker is JDK 8. +# ... don't need to specify -PskipCoverage (see settings.xml) +# [4] get shell with `docker exec -it mosaic-dev /bin/bash -c "unset JAVA_TOOL_OPTIONS && cd /root/mosaic && /bin/bash"`, +# - can have multiple shells going; call `sh scripts/docker/exec-shell.sh` also +# [5] `docker stop mosaic-dev` whenever done to terminate the container +# NOTE: Ignore 'ERRO[0000] error waiting for container: context canceled' +docker run -q --privileged --platform linux/amd64 --name mosaic-dev -p 5005:5005 -p 8888:8888 \ +-v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" \ +-itd --rm mosaic-dev:ubuntu22-gdal3.4.1-spark3.4.1 /bin/bash +docker exec -it mosaic-dev /bin/bash -c "sh /root/mosaic/scripts/docker/docker_init.sh" +docker exec -it mosaic-dev /bin/bash -c "unset JAVA_TOOL_OPTIONS && cd /root/mosaic && /bin/bash" \ No newline at end of file diff --git a/scripts/m2/mvn_init.sh b/scripts/m2/mvn_init.sh deleted file mode 100755 index a95c53715..000000000 --- a/scripts/m2/mvn_init.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# [1] unset variable for this script -echo -e "\n::: [1] ... unsetting JAVA_TOOL_OPTIONS (probably need to do in container as well) :::" -unset JAVA_TOOL_OPTIONS - -# [2] copy custom settings.xml -# - defaults to new skipScoverage profile -# - compliments the pom config (profile sCoverage also added there) -# - sets .m2 folder to be in project -echo -e "\n::: [2] ... setting up new .m2 (in project) + new skipScoverage profile (as default) :::" -mv /usr/local/share/maven/conf/settings.xml /usr/local/share/maven/conf/settings.xml.BAK -cp /root/mosaic/scripts/m2/settings.xml /usr/local/share/maven/conf -echo -e " ... mvn active profile(s)\n" -cd /root/mosaic && mvn help:active-profiles - -# [3] build JVM code -# this is building for container JDK -# see settings.xml for overrides -echo -e "\n::: [3] ... build JVM code version? :::\n" -echo -e " $(javac -version)" -cd /root/mosaic && mvn package -DskipTests - -# [4] build python -echo -e "\n::: [4] ... build python :::\n" -pip install --upgrade pip -cd /root/mosaic/python && pip install . -pip install black build isort py4j requests -pip install pyspark==3.4.1 - -# [5] run gdal install script -# - this is adapted from 0.4.2/mosaic-gdal-init.sh -echo -e "\n::: [5] ... setup gdal :::\n" - -# refresh package info -apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-backports main universe multiverse restricted" -apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-updates main universe multiverse restricted" -apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc)-security main multiverse restricted universe" -apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main multiverse restricted universe" -apt-get update -y - -# install natives -# - gdal natives already installed -apt-get -o DPkg::Lock::Timeout=-1 install -y python3-numpy unixodbc libcurl3-gnutls libsnappy-dev libopenjp2-7 - -# pip install gdal -# - match the container version (jammy default) -pip install gdal==3.4.1 diff --git a/scripts/mosaic-docker.sh b/scripts/mosaic-docker.sh deleted file mode 100644 index ab5ed6144..000000000 --- a/scripts/mosaic-docker.sh +++ /dev/null @@ -1,17 +0,0 @@ -# [1] checkout https://github.com/r3stl355/mosaic-docker -# - you need to first build the image (under mosaic-docker repo) for Mosaic 0.4 series: -# `GDAL_VERSION=3.4.1 LIBPROJ_VERSION=7.1.0 SPARK_VERSION=3.4.0 CORES=4 ./build` -# - produces image 'ubuntu22-gdal3.4.1-spark3.4.0' [default is JDK 8] -# [2] run this in root of (mosaic repo), e.g. `sh scripts/mosaic-docker.sh` -# - for IDE driven or Jupyter notebook testing -# [3] if you want to run tests within the container shell -# - [a] after launch type `unset JAVA_TOOL_OPTIONS` from the container -# - [b] then can test e.g. `mvn -X test -DskipTests=false -Dsuites=com.databricks.labs.mosaic.core.raster.TestRasterGDAL` and -# `python3 -m unittest mosaic test/test_fuse_install.py` from python -# - [c] you may need to run `mvn clean` occasionally, especially around initial setup as intellij is JDK 11 -# and docker is JDK 8. -# ... don't need to specify -PskipCoverage (see settings.xml) -docker run --platform linux/amd64 --name mosaic-dev --rm -p 5005:5005 -p 8888:8888 \ --v $PWD:/root/mosaic -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" \ --it mosaic-dev:ubuntu22-gdal3.4.1-spark3.4.0 /bin/bash -c \ -"/root/mosaic/scripts/m2/mvn_init.sh && cd /root/mosaic && /bin/bash" diff --git a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala index effadf81f..eb96ded80 100644 --- a/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala +++ b/src/main/scala/com/databricks/labs/mosaic/expressions/raster/RST_MakeTiles.scala @@ -124,7 +124,6 @@ case class RST_MakeTiles( override def eval(input: InternalRow): TraversableOnce[InternalRow] = { GDAL.enable(expressionConfig) -// val tileType = dataType.asInstanceOf[StructType].find(_.name == "raster").get.dataType val rasterType = dataType.asInstanceOf[RasterTileType].rasterType val rawDriver = driverExpr.eval(input).asInstanceOf[UTF8String].toString From 4b80084aa1718f640d2942f83a5bc68e5d4fa70a Mon Sep 17 00:00:00 2001 From: Michael Johns Date: Fri, 24 May 2024 16:24:58 -0400 Subject: [PATCH 38/38] library handling. --- CHANGELOG.md | 2 +- python/mosaic/api/__init__.py | 2 +- python/mosaic/api/enable.py | 25 ++++++++++++++++++++++++- python/setup.cfg | 1 - 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b25672d0..3a9ff6687 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v0.4.3 [DBR 13.3 LTS] +- Pyspark requirement removed from python setup.cfg as it is supplied by DBR - Python version limited to "<3.11,>=3.10" for DBR -- Pyspark version limited to 3.4.1 for DBR - iPython dependency limited to "<8.11,>=7.4.2" for both DBR and keplergl-jupyter - Expanded support for fuse-based checkpointing (persisted raster storage), managed through: - spark config 'spark.databricks.labs.mosaic.raster.use.checkpoint' in addition to 'spark.databricks.labs.mosaic.raster.checkpoint'. diff --git a/python/mosaic/api/__init__.py b/python/mosaic/api/__init__.py index 6377554d3..9c8ce7a81 100644 --- a/python/mosaic/api/__init__.py +++ b/python/mosaic/api/__init__.py @@ -1,7 +1,7 @@ from .accessors import * from .aggregators import * from .constructors import * -from .enable import enable_mosaic +from .enable import enable_mosaic, get_install_version, get_install_lib_dir from .functions import * from .fuse import * from .predicates import * diff --git a/python/mosaic/api/enable.py b/python/mosaic/api/enable.py index b2187b9ae..e7e66f974 100644 --- a/python/mosaic/api/enable.py +++ b/python/mosaic/api/enable.py @@ -1,3 +1,5 @@ +import importlib.metadata +import importlib.resources import warnings from IPython.core.getipython import get_ipython @@ -82,9 +84,10 @@ def enable_mosaic( config.log_info=True # Config global objects + # - add MosaicContext after MosaicLibraryHandler config.mosaic_spark = spark - config.mosaic_context = MosaicContext(spark) _ = MosaicLibraryHandler(spark, log_info=log_info) + config.mosaic_context = MosaicContext(spark) config.mosaic_context.jRegister(spark) _jcontext = config.mosaic_context.jContext() @@ -106,6 +109,26 @@ def enable_mosaic( config.ipython_hook.register_magics(MosaicKepler) +def get_install_version() -> str: + """ + :return: mosaic version installed + """ + return importlib.metadata.version("databricks-mosaic") + + +def get_install_lib_dir(override_jar_filename=None) -> str: + """ + This is looking for the library dir under site packages using the jar name. + :return: located library dir. + """ + v = get_install_version() + jar_filename = f"mosaic-{v}-jar-with-dependencies.jar" + if override_jar_filename: + jar_filename = override_jar_filename + with importlib.resources.path("mosaic.lib", jar_filename) as p: + return p.parent.as_posix() + + def refresh_context(): """ Refresh mosaic context, using previously configured information. diff --git a/python/setup.cfg b/python/setup.cfg index 6b4cb7de8..4ffd3dc94 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -22,7 +22,6 @@ install_requires = h3<4.0,>=3.7 ipython<8.11,>=7.4.2 keplergl==0.3.2 - pyspark==3.4.1 [options.package_data] mosaic =