Код: Выделить всё
Py4JJavaError: An error occurred while calling o42.save.
: com.google.common.util.concurrent.ExecutionError: java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
Я установил Apache Spark на свой компьютер. локальная машина, и теперь, когда я пытаюсь создать таблицу дельта-озера, она показывает ошибку. Я не могу понять, почему это происходит, когда я установил все в соответствии с инструкциями, указанными в документации по Delta Lake.
Я просто использую этот код в качестве примера из Delta Lake. документы для создания таблицы дельта-озера
Код: Выделить всё
import pyspark
from delta import *
builder = pyspark.sql.SparkSession.builder.appName("Testing") \
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
spark = configure_spark_with_delta_pip(builder).getOrCreate()
data = spark.range(0, 5)
data.write.format("delta").save("testing")
Код: Выделить всё
Py4JJavaError: An error occurred while calling o42.save.
: com.google.common.util.concurrent.ExecutionError: java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2261)
at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4789)
at org.apache.spark.sql.delta.DeltaLog$.getDeltaLogFromCache$1(DeltaLog.scala:865)
at org.apache.spark.sql.delta.DeltaLog$.apply(DeltaLog.scala:875)
at org.apache.spark.sql.delta.DeltaLog$.forTable(DeltaLog.scala:751)
at org.apache.spark.sql.delta.sources.DeltaDataSource.createRelation(DeltaDataSource.scala:189)
at org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:48)
at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:75)
at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:73)
at org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:84)
at org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.$anonfun$applyOrElse$1(QueryExecution.scala:107)
at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$6(SQLExecution.scala:125)
at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:201)
at org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:108)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:900)
at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:66)
at org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:107)
at org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:98)
at org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformDownWithPruning$1(TreeNode.scala:461)
at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(origin.scala:76)
at org.apache.spark.sql.catalyst.trees.TreeNode.transformDownWithPruning(TreeNode.scala:461)
at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.org$apache$spark$sql$catalyst$plans$logical$AnalysisHelper$$super$transformDownWithPruning(LogicalPlan.scala:32)
at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning(AnalysisHelper.scala:267)
at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning$(AnalysisHelper.scala:263)
at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:32)
at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:32)
at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:437)
at org.apache.spark.sql.execution.QueryExecution.eagerlyExecuteCommands(QueryExecution.scala:98)
at org.apache.spark.sql.execution.QueryExecution.commandExecuted$lzycompute(QueryExecution.scala:85)
at org.apache.spark.sql.execution.QueryExecution.commandExecuted(QueryExecution.scala:83)
at org.apache.spark.sql.execution.QueryExecution.assertCommandExecuted(QueryExecution.scala:142)
at org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameWriter.scala:859)
at org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:388)
at org.apache.spark.sql.DataFrameWriter.saveInternal(DataFrameWriter.scala:355)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:240)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:374)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)
at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: o r g . a p a c h e . h a d o o p . i o . n a t i v e i o . N a t i v e I O $ W i n d o w s . a c c e s s 0 ( L j a v a / l a n g / S t r i n g ; I ) Z < b r / > a t o r g . a p a c h e . h a d o o p . i o . n a t i v e i o . N a t i v e I O $ W i n d o w s . a c c e s s 0 ( N a t i v e M e t h o d ) < b r / > a t o r g . a p a c h e . h a d o o p . i o . n a t i v e i o . N a t i v e I O $ W i n d o w s . a c c e s s ( N a t i v e I O . j a v a : 7 9 3 ) < b r / > a t o r g . a p a c h e . h a d o o p . f s . F i l e U t i l . c a n R e a d ( F i l e U t i l . j a v a : 1 2 4 9 ) < b r / > a t o r g . a p a c h e . h a d o o p . f s . F i l e U t i l . l i s t ( F i l e U t i l . j a v a : 1 4 5 4 ) < b r / > a t o r g . a p a c h e . h a d o o p . f s . R a w L o c a l F i l e S y s t e m . l i s t S t a t u s ( R a w L o c a l F i l e S y s t e m . j a v a : 6 0 1 ) < b r / > a t o r g . a p a c h e . h a d o o p . f s . F i l e S y s t e m . l i s t S t a t u s ( F i l e S y s t e m . j a v a : 1 9 7 2 ) < b r / > a t o r g . a p a c h e . h a d o o p . f s . F i l e S y s t e m . l i s t S t a t u s ( F i l e S y s t e m . j a v a : 2 0 1 4 ) < b r / > a t o r g . a p a c h e . h a d o o p . f s . C h e c k s u m F i l e S y s t e m . l i s t S t a t u s ( C h e c k s u m F i l e S y s t e m . j a v a : 7 6 1 ) < b r / > a t i o . d e l t a . s t o r a g e . H a d o o p F i l e S y s t e m L o g S t o r e . l i s t F r o m ( H a d o o p F i l e S y s t e m L o g S t o r e . j a v a : 5 9 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . s t o r a g e . L o g S t o r e A d a p t o r . l i s t F r o m ( L o g S t o r e . s c a l a : 4 5 2 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . s t o r a g e . D e l e g a t i n g L o g S t o r e . l i s t F r o m ( D e l e g a t i n g L o g S t o r e . s c a l a : 1 2 7 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . l i s t F r o m ( S n a p s h o t M a n a g e m e n t . s c a l a : 8 6 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . l i s t F r o m $ ( S n a p s h o t M a n a g e m e n t . s c a l a : 8 5 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . D e l t a L o g . l i s t F r o m ( D e l t a L o g . s c a l a : 7 4 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . l i s t F r o m O r N o n e ( S n a p s h o t M a n a g e m e n t . s c a l a : 1 0 3 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . l i s t F r o m O r N o n e $ ( S n a p s h o t M a n a g e m e n t . s c a l a : 9 9 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . D e l t a L o g . l i s t F r o m O r N o n e ( D e l t a L o g . s c a l a : 7 4 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . l i s t F r o m F i l e S y s t e m I n t e r n a l ( S n a p s h o t M a n a g e m e n t . s c a l a : 1 1 3 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . $ a n o n f u n $ l i s t D e l t a C o m p a c t e d D e l t a A n d C h e c k p o i n t F i l e s $ 2 ( S n a p s h o t M a n a g e m e n t . s c a l a : 1 5 8 ) < b r / > a t s c a l a . O p t i o n . g e t O r E l s e ( O p t i o n . s c a l a : 1 8 9 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . S n a p s h o t M a n a g e m e n t . $ a n o n f u n $ l i s t D e l t a C o m p a c t e d D e l t a A n d C h e c k p o i n t F i l e s $ 1 ( S n a p s h o t M a n a g e m e n t . s c a l a : 1 5 8 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . m e t e r i n g . D e l t a L o g g i n g . r e c o r d F r a m e P r o f i l e ( D e l t a L o g g i n g . s c a l a : 1 6 8 ) < b r / > a t o r g . a p a c h e . s p a r k . s q l . d e l t a . m e t e r i n g . D e l t a L o g g i n g . r e c o r d F r a m e P r o f i l e $ ( D e l t a Logging.scala:166)
at org.apache.spark.sql.delta.DeltaLog.recordFrameProfile(DeltaLog.scala:74)
at org.apache.spark.sql.delta.metering.DeltaLogging.$anonfun$recordDeltaOperationInternal$1(DeltaLogging.scala:136)
at com.databricks.spark.util.DatabricksLogging.recordOperation(DatabricksLogging.scala:128)
at com.databricks.spark.util.DatabricksLogging.recordOperation$(DatabricksLogging.scala:117)
at org.apache.spark.sql.delta.DeltaLog.recordOperation(DeltaLog.scala:74)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperationInternal(DeltaLogging.scala:135)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation(DeltaLogging.scala:125)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation$(DeltaLogging.scala:115)
at org.apache.spark.sql.delta.DeltaLog.recordDeltaOperation(DeltaLog.scala:74)
at org.apache.spark.sql.delta.SnapshotManagement.listDeltaCompactedDeltaAndCheckpointFiles(SnapshotManagement.scala:156)
at org.apache.spark.sql.delta.SnapshotManagement.listDeltaCompactedDeltaAndCheckpointFiles$(SnapshotManagement.scala:151)
at org.apache.spark.sql.delta.DeltaLog.listDeltaCompactedDeltaAndCheckpointFiles(DeltaLog.scala:74)
at org.apache.spark.sql.delta.SnapshotManagement.createLogSegment(SnapshotManagement.scala:302)
at org.apache.spark.sql.delta.SnapshotManagement.createLogSegment$(SnapshotManagement.scala:290)
at org.apache.spark.sql.delta.DeltaLog.createLogSegment(DeltaLog.scala:74)
at org.apache.spark.sql.delta.SnapshotManagement.$anonfun$getSnapshotAtInit$2(SnapshotManagement.scala:578)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile(DeltaLogging.scala:168)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile$(DeltaLogging.scala:166)
at org.apache.spark.sql.delta.DeltaLog.recordFrameProfile(DeltaLog.scala:74)
at org.apache.spark.sql.delta.SnapshotManagement.$anonfun$getSnapshotAtInit$1(SnapshotManagement.scala:573)
at org.apache.spark.sql.delta.SnapshotManagement.withSnapshotLockInterruptibly(SnapshotManagement.scala:78)
at org.apache.spark.sql.delta.SnapshotManagement.withSnapshotLockInterruptibly$(SnapshotManagement.scala:75)
at org.apache.spark.sql.delta.DeltaLog.withSnapshotLockInterruptibly(DeltaLog.scala:74)
at org.apache.spark.sql.delta.SnapshotManagement.getSnapshotAtInit(SnapshotManagement.scala:573)
at org.apache.spark.sql.delta.SnapshotManagement.getSnapshotAtInit$(SnapshotManagement.scala:572)
at org.apache.spark.sql.delta.DeltaLog.getSnapshotAtInit(DeltaLog.scala:74)
at org.apache.spark.sql.delta.SnapshotManagement.$init$(SnapshotManagement.scala:69)
at org.apache.spark.sql.delta.DeltaLog.(DeltaLog.scala:80)
at org.apache.spark.sql.delta.DeltaLog$.$anonfun$apply$4(DeltaLog.scala:853)
at org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper$.allowInvokingTransformsInAnalyzer(AnalysisHelper.scala:323)
at org.apache.spark.sql.delta.DeltaLog$.$anonfun$apply$3(DeltaLog.scala:848)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile(DeltaLogging.scala:168)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordFrameProfile$(DeltaLogging.scala:166)
at org.apache.spark.sql.delta.DeltaLog$.recordFrameProfile(DeltaLog.scala:651)
at org.apache.spark.sql.delta.metering.DeltaLogging.$anonfun$recordDeltaOperationInternal$1(DeltaLogging.scala:136)
at com.databricks.spark.util.DatabricksLogging.recordOperation(DatabricksLogging.scala:128)
at com.databricks.spark.util.DatabricksLogging.recordOperation$(DatabricksLogging.scala:117)
at org.apache.spark.sql.delta.DeltaLog$.recordOperation(DeltaLog.scala:651)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperationInternal(DeltaLogging.scala:135)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation(DeltaLogging.scala:125)
at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation$(DeltaLogging.scala:115)
at org.apache.spark.sql.delta.DeltaLog$.recordDeltaOperation(DeltaLog.scala:651)
at org.apache.spark.sql.delta.DeltaLog$.createDeltaLog$1(DeltaLog.scala:847)
at org.apache.spark.sql.delta.DeltaLog$.$anonfun$apply$5(DeltaLog.scala:866)
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4792)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
... 47 more
Код: Выделить всё
C:\Users\user>spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Spark context Web UI available at {ip address}
Spark context available as 'sc' (master = local[*], app id = local-1722176431791).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.5.1
/_/
Using Scala version 2.12.18 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_421)
Type in expressions to have them evaluated.
Type :help for more information.
Я ожидал дельта-таблицу
Подробнее здесь: https://stackoverflow.com/questions/788 ... common-uti