Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Delta OMS work with Liquid Clustering and Deletion Vectors #28

Open
eumarassis opened this issue Mar 15, 2024 · 0 comments
Open

Make Delta OMS work with Liquid Clustering and Deletion Vectors #28

eumarassis opened this issue Mar 15, 2024 · 0 comments

Comments

@eumarassis
Copy link

Delta OMS stopped working after January 31, 2024. There were no changes to our Delta OMS deployment nor the cluster's runtime version.

The only change in the environment recently was the enablement of Liquid Clustering and Deletion Vectors.

Error message and stack trace are provided below:

"[FIELD_NOT_FOUND] No such struct field `clusteringProvider` in `path`"

rg.apache.spark.sql.AnalysisException: [FIELD_NOT_FOUND] No such struct field `clusteringProvider` in `path`, `partitionValues`, `size`, `modificationTime`, `dataChange`, `stats`, `tags`, `deletionVector`, `baseRowId`, `defaultRowCommitVersion`.
	at org.apache.spark.sql.errors.QueryCompilationErrors$.noSuchStructFieldInGivenFieldsError(QueryCompilationErrors.scala:2509)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.$anonfun$addFields$2(ResolveUnion.scala:83)
	at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
	at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
	at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.addFields(ResolveUnion.scala:70)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.mergeFields(ResolveUnion.scala:111)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.$anonfun$compareAndAddFields$1(ResolveUnion.scala:148)
	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286)
	at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
	at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
	at scala.collection.TraversableLike.map(TraversableLike.scala:286)
	at scala.collection.TraversableLike.map$(TraversableLike.scala:279)
	at scala.collection.AbstractTraversable.map(Traversable.scala:108)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.compareAndAddFields(ResolveUnion.scala:139)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.org$apache$spark$sql$catalyst$analysis$ResolveUnion$$unionTwoSides(ResolveUnion.scala:171)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$$anonfun$apply$2.$anonfun$applyOrElse$1(ResolveUnion.scala:215)
	at scala.collection.IndexedSeqOptimized.reduceLeft(IndexedSeqOptimized.scala:60)
	at scala.collection.IndexedSeqOptimized.reduceLeft$(IndexedSeqOptimized.scala:76)
	at scala.collection.mutable.ArrayBuffer.reduceLeft(ArrayBuffer.scala:49)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$$anonfun$apply$2.applyOrElse(ResolveUnion.scala:213)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$$anonfun$apply$2.applyOrElse(ResolveUnion.scala:209)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.$anonfun$resolveOperatorsUpWithPruning$3(AnalysisHelper.scala:141)
	at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(origin.scala:69)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.$anonfun$resolveOperatorsUpWithPruning$1(AnalysisHelper.scala:141)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper$.allowInvokingTransformsInAnalyzer(AnalysisHelper.scala:372)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.resolveOperatorsUpWithPruning(AnalysisHelper.scala:137)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.resolveOperatorsUpWithPruning$(AnalysisHelper.scala:133)
	at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolveOperatorsUpWithPruning(LogicalPlan.scala:39)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.apply(ResolveUnion.scala:209)
	at org.apache.spark.sql.catalyst.analysis.ResolveUnion$.apply(ResolveUnion.scala:37)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$execute$4(RuleExecutor.scala:286)
	at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$execute$3(RuleExecutor.scala:286)
	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
	at scala.collection.immutable.List.foldLeft(List.scala:91)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$execute$2(RuleExecutor.scala:283)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.executeBatch$1(RuleExecutor.scala:266)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$execute$8(RuleExecutor.scala:353)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$execute$8$adapted(RuleExecutor.scala:353)
	at scala.collection.immutable.List.foreach(List.scala:431)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$execute$1(RuleExecutor.scala:353)
	at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.execute(RuleExecutor.scala:233)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.executeSameContext(Analyzer.scala:410)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.$anonfun$execute$1(Analyzer.scala:403)
	at org.apache.spark.sql.catalyst.analysis.AnalysisContext$.withNewAnalysisContext(Analyzer.scala:310)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.execute(Analyzer.scala:403)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.execute(Analyzer.scala:329)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.$anonfun$executeAndTrack$1(RuleExecutor.scala:225)
	at org.apache.spark.sql.catalyst.QueryPlanningTracker$.withTracker(QueryPlanningTracker.scala:166)
	at org.apache.spark.sql.catalyst.rules.RuleExecutor.executeAndTrack(RuleExecutor.scala:225)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.$anonfun$executeAndCheck$1(Analyzer.scala:381)
	at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper$.markInAnalyzer(AnalysisHelper.scala:379)
	at org.apache.spark.sql.catalyst.analysis.Analyzer.executeAndCheck(Analyzer.scala:380)
	at org.apache.spark.sql.execution.QueryExecution.$anonfun$analyzed$1(QueryExecution.scala:193)
	at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
	at org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:400)
	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$4(QueryExecution.scala:445)
	at org.apache.spark.sql.execution.QueryExecution$.withInternalError(QueryExecution.scala:959)
	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$2(QueryExecution.scala:445)
	at com.databricks.util.LexicalThreadLocal$Handle.runWith(LexicalThreadLocal.scala:63)
	at org.apache.spark.sql.execution.QueryExecution.$anonfun$executePhase$1(QueryExecution.scala:441)
	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:1138)
	at org.apache.spark.sql.execution.QueryExecution.executePhase(QueryExecution.scala:441)
	at org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:187)
	at org.apache.spark.sql.execution.QueryExecution.analyzed(QueryExecution.scala:186)
	at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:176)
	at org.apache.spark.sql.Dataset$.$anonfun$ofRows$1(Dataset.scala:100)
	at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:1138)
	at org.apache.spark.sql.SparkSession.$anonfun$withActiveAndFrameProfiler$1(SparkSession.scala:1145)
	at com.databricks.spark.util.FrameProfiler$.record(FrameProfiler.scala:94)
	at org.apache.spark.sql.SparkSession.withActiveAndFrameProfiler(SparkSession.scala:1145)
	at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:98)
	at org.apache.spark.sql.Dataset.withSetOperator(Dataset.scala:4603)
	at org.apache.spark.sql.Dataset.unionByName(Dataset.scala:2413)
	at org.apache.spark.sql.Dataset.unionByName(Dataset.scala:2368)
	at com.databricks.labs.deltaoms.common.OMSOperations.computeActionSnapshotFromRawActions(OMSOperations.scala:417)
	at com.databricks.labs.deltaoms.common.OMSOperations.computeActionSnapshotFromRawActions$(OMSOperations.scala:404)
	at com.databricks.labs.deltaoms.process.OMSProcessRawActions$.computeActionSnapshotFromRawActions(OMSProcessRawActions.scala:22)
	at com.databricks.labs.deltaoms.common.OMSOperations.processActionSnapshotsFromRawActions(OMSOperations.scala:388)
	at com.databricks.labs.deltaoms.common.OMSOperations.processActionSnapshotsFromRawActions$(OMSOperations.scala:376)
	at com.databricks.labs.deltaoms.process.OMSProcessRawActions$.processActionSnapshotsFromRawActions(OMSProcessRawActions.scala:22)
	at com.databricks.labs.deltaoms.process.OMSProcessRawActions$.main(OMSProcessRawActions.scala:45)
	at $line30612757fe444ea583d384e870e50bc325.$read$$iw$$iw$$iw$$iw$$iw$$iw.<init>(command--1:1)
	at $line30612757fe444ea583d384e870e50bc325.$read$$iw$$iw$$iw$$iw$$iw.<init>(command--1:43)
	at $line30612757fe444ea583d384e870e50bc325.$read$$iw$$iw$$iw$$iw.<init>(command--1:45)
	at $line30612757fe444ea583d384e870e50bc325.$read$$iw$$iw$$iw.<init>(command--1:47)
	at $line30612757fe444ea583d384e870e50bc325.$read$$iw$$iw.<init>(command--1:49)
	at $line30612757fe444ea583d384e870e50bc325.$read$$iw.<init>(command--1:51)
	at $line30612757fe444ea583d384e870e50bc325.$read.<init>(command--1:53)
	at $line30612757fe444ea583d384e870e50bc325.$read$.<init>(command--1:57)
	at $line30612757fe444ea583d384e870e50bc325.$read$.<clinit>(command--1)
	at $line30612757fe444ea583d384e870e50bc325.$eval$.$print$lzycompute(<notebook>:7)
	at $line30612757fe444ea583d384e870e50bc325.$eval$.$print(<notebook>:6)
	at $line30612757fe444ea583d384e870e50bc325.$eval.$print(<notebook>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:747)
	at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1020)
	at scala.tools.nsc.interpreter.IMain.$anonfun$interpret$1(IMain.scala:568)
	at scala.reflect.internal.util.ScalaClassLoader.asContext(ScalaClassLoader.scala:36)
	at scala.reflect.internal.util.ScalaClassLoader.asContext$(ScalaClassLoader.scala:116)
	at scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:41)
	at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:567)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:594)
	at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:564)
	at com.databricks.backend.daemon.driver.DriverILoop.execute(DriverILoop.scala:223)
	at com.databricks.backend.daemon.driver.ScalaDriverLocal.$anonfun$repl$1(ScalaDriverLocal.scala:236)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at com.databricks.backend.daemon.driver.DriverLocal$TrapExitInternal$.trapExit(DriverLocal.scala:1395)
	at com.databricks.backend.daemon.driver.DriverLocal$TrapExit$.apply(DriverLocal.scala:1348)
	at com.databricks.backend.daemon.driver.ScalaDriverLocal.repl(ScalaDriverLocal.scala:236)
	at com.databricks.backend.daemon.driver.DriverLocal.$anonfun$execute$33(DriverLocal.scala:997)
	at com.databricks.unity.EmptyHandle$.runWith(UCSHandle.scala:124)
	at com.databricks.backend.daemon.driver.DriverLocal.$anonfun$execute$22(DriverLocal.scala:980)
	at com.databricks.logging.UsageLogging.$anonfun$withAttributionContext$1(UsageLogging.scala:426)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
	at com.databricks.logging.AttributionContext$.withValue(AttributionContext.scala:196)
	at com.databricks.logging.UsageLogging.withAttributionContext(UsageLogging.scala:424)
	at com.databricks.logging.UsageLogging.withAttributionContext$(UsageLogging.scala:418)
	at com.databricks.backend.daemon.driver.DriverLocal.withAttributionContext(DriverLocal.scala:69)
	at com.databricks.logging.UsageLogging.withAttributionTags(UsageLogging.scala:470)
	at com.databricks.logging.UsageLogging.withAttributionTags$(UsageLogging.scala:455)
	at com.databricks.backend.daemon.driver.DriverLocal.withAttributionTags(DriverLocal.scala:69)
	at com.databricks.backend.daemon.driver.DriverLocal.execute(DriverLocal.scala:935)
	at com.databricks.backend.daemon.driver.DriverWrapper.$anonfun$tryExecutingCommand$1(DriverWrapper.scala:798)
	at scala.util.Try$.apply(Try.scala:213)
	at com.databricks.backend.daemon.driver.DriverWrapper.tryExecutingCommand(DriverWrapper.scala:790)
	at com.databricks.backend.daemon.driver.DriverWrapper.executeCommandAndGetError(DriverWrapper.scala:643)
	at com.databricks.backend.daemon.driver.DriverWrapper.executeCommand(DriverWrapper.scala:744)
	at com.databricks.backend.daemon.driver.DriverWrapper.runInnerLoop(DriverWrapper.scala:520)
	at com.databricks.backend.daemon.driver.DriverWrapper.runInner(DriverWrapper.scala:436)
	at com.databricks.backend.daemon.driver.DriverWrapper.run(DriverWrapper.scala:279)
	at java.lang.Thread.run(Thread.java:750)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant