pyspark writeStream失败,出现java.lang.UnsisfiedLinkError



我已经下载了winutils和hadoop.dll(用于hadoop 3.2(,并正确设置了hadoop_HOME,并将其添加到路径变量中。然而,当我这样做的时候,我得到了下面的错误,writeStream。环境是窗口:

我甚至试图将hadoop.dll复制到C:\Windows\System32,但没有帮助。我验证了winutils和hadoop.dll的版本几次,它们看起来还可以。

df = spark 
.readStream 
.format("eventhubs") 
.options(**ehConf) 
.load() 
.selectExpr("cast(body as string) as value")
df.writeStream.format("json").option("checkpointLocation","C:workcheckpoint").option("path", "C:workoutput").start()

我强烈感觉到当地环境有问题,无法解决。

df.writeStream失败,出现以下错误:

Exception in thread "stream execution thread for [id = cb6bb780-7371-436d-af12-0c92048f06c8, runId = ae1faffc-d6ec-4513-b457-f9aa61f0ef9d]"
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)

当我回滚到旧版本的spark-hadoop包时,问题得到了解决。看起来,我的Hadoop3.x包有一些问题。我尝试了spark-3.1.2-in-hadoop2.7包,它运行正常。此外,我在用户级别清理并重新创建了所有env变量,之前是在系统级别。现在,我看不出上面的错误。

相关内容

最新更新