databricks-modules-vy 1.1.22__tar.gz → 1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/PKG-INFO +1 -1
  2. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/sharepoint.py +10 -3
  3. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/unity_catalog.py +5 -9
  4. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy.egg-info/PKG-INFO +1 -1
  5. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/pyproject.toml +1 -1
  6. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/LICENSE +0 -0
  7. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/__init__.py +0 -0
  8. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/data_product.py +0 -0
  9. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/data_quality_tests.py +0 -0
  10. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/dataframe.py +0 -0
  11. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/extend_class.py +0 -0
  12. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/glue.py +0 -0
  13. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/logging.py +0 -0
  14. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/oracle.py +0 -0
  15. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/qlik.py +0 -0
  16. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/s3.py +0 -0
  17. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/service_platform.py +0 -0
  18. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/snaplogic.py +0 -0
  19. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy/styringsinfo_postgres.py +0 -0
  20. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy.egg-info/SOURCES.txt +0 -0
  21. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy.egg-info/dependency_links.txt +0 -0
  22. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/databricks_modules_vy.egg-info/top_level.txt +0 -0
  23. {databricks_modules_vy-1.1.22 → databricks_modules_vy-1.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks_modules_vy
3
- Version: 1.1.22
3
+ Version: 1.2
4
4
  Summary: Databricks modules for Vy
5
5
  Author-email: Sindre Kjetså <sindre.kjetsa@vy.no>
6
6
  Project-URL: Homepage, https://github.com/nsbno/
@@ -21,10 +21,17 @@ dbutils = DBUtils(spark)
21
21
  def _get_sharepoint_ctx(site_name="VyMasterdata") -> ClientContext:
22
22
  sharepoint_url = dbutils.secrets.get("SHAREPOINT", "url")
23
23
  site_url = f"{sharepoint_url}/sites/{site_name}"
24
+ tenant = dbutils.secrets.get("SHAREPOINT", "tenant")
24
25
  client_id = dbutils.secrets.get("SHAREPOINT", "app_id")
25
- client_secret = dbutils.secrets.get("SHAREPOINT", "app_secret")
26
-
27
- return ClientContext(site_url).with_client_credentials(client_id, client_secret)
26
+ thumbprint = dbutils.secrets.get("SHAREPOINT", "cert_thumbprint")
27
+ private_key = dbutils.secrets.get("SHAREPOINT", "cert_private_key")
28
+
29
+ return ClientContext(site_url).with_client_certificate(
30
+ tenant=tenant,
31
+ client_id=client_id,
32
+ thumbprint=thumbprint,
33
+ private_key=private_key,
34
+ )
28
35
 
29
36
 
30
37
  def _execute_query_with_backoff(
@@ -185,21 +185,17 @@ def upsert_to_uc(
185
185
  merge_condition += f" AND target.{key} = '{value}'"
186
186
 
187
187
  if upsert_many:
188
+ # For upsert_many, remove all target rows for affected keys first,
189
+ # then append full source rows in one write.
190
+ df_keys = df.select(*upsert_keys).dropDuplicates()
188
191
  (
189
192
  target_table.alias("target")
190
- .merge(df.alias("source"), merge_condition)
193
+ .merge(df_keys.alias("source"), merge_condition)
191
194
  .whenMatchedDelete()
192
195
  .execute()
193
196
  )
194
197
 
195
- # Do it again for insert
196
- target_table = DeltaTable.forName(spark, target)
197
- (
198
- target_table.alias("target")
199
- .merge(df.alias("source"), merge_condition)
200
- .whenNotMatchedInsertAll()
201
- .execute()
202
- )
198
+ df.write.mode("append").saveAsTable(target)
203
199
  else:
204
200
  (
205
201
  target_table.alias("target")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks_modules_vy
3
- Version: 1.1.22
3
+ Version: 1.2
4
4
  Summary: Databricks modules for Vy
5
5
  Author-email: Sindre Kjetså <sindre.kjetsa@vy.no>
6
6
  Project-URL: Homepage, https://github.com/nsbno/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "databricks_modules_vy"
3
- version = "1.1.22"
3
+ version = "1.2"
4
4
  authors = [
5
5
  { name="Sindre Kjetså", email="sindre.kjetsa@vy.no" },
6
6
  ]