Så här uppdaterar du ett maven-bibliotek på rätt sätt i Azure Databricks

Problem

Anta att du gör en mindre uppdatering av ett bibliotek i lagrings platsen och att du inte vill ändra versions numret eftersom det bara är en liten förändring i test syfte. Men när du ansluter biblioteket till klustret igen ingår inte kod ändringarna i biblioteket.

Orsak

En av fördelarna med Azure Databricks är möjligheten att installera tredje part eller anpassade bibliotek, till exempel från en maven-lagringsplats. Men när ett bibliotek uppdateras i databasen finns det inget automatiskt sätt att uppdatera motsvarande bibliotek i klustret.

När du begär Azure Databricks för att ladda ned ett bibliotek för att ansluta det till ett kluster sker följande:

  1. I Azure Databricks begär du ett bibliotek från en maven-lagringsplats.
  2. Azure Databricks kontrollerar det lokala cacheminnet för biblioteket och om det inte finns laddar ned biblioteket från maven-lagringsplatsen till ett lokalt cacheminne.
  3. Azure Databricks kopierar sedan biblioteket till DBFS ( /FileStore/jars/maven/ ).
  4. Vid efterföljande begär Anden för biblioteket använder Azure Databricks filen som redan har kopierats till DBFS och hämtar inte en ny kopia.

Lösning

För att säkerställa att en uppdaterad version av ett bibliotek (eller ett bibliotek som du har anpassat) hämtas till ett kluster, måste du öka build-numret eller versions numret för artefakten på något sätt. Du kan till exempel ändra libA_v1.0.0-SNAPSHOT till libA_v1.0.1-SNAPSHOT och sedan laddas det nya biblioteket. Du kan sedan ansluta den till klustret.