我已经编写了Spark Scala代码。我有一个奇怪的问题,我能够在Dataproc集群中使用AD身份验证成功读取Azure SQL。但我在写入Azure SQL时出现以下错误。
NoClassDefFoundError: com/microsoft/aad/adal4j/AuthenticationException
我只有在Dataproc集群中运行时才收到此错误。相同的代码在我的本地机器上运行良好。
更清楚的是,我在阅读Dataproc时也遇到了同样的错误,我使用Maven shade插件重新定位冲突库,从而解决了这个问题。但现在我在写作时又犯了同样的错误。不确定出了什么问题。为什么在Dataproc中写入失败?请帮忙
代码示例:
正在读取Azure SQL(工作正常):
spark.read
.format("com.microsoft.sqlserver.jdbc.spark")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.option("encrypt", "false")
.option("url", url)
.option("database", database)
.option("user", user)
.option("password", password)
.option("query", query)
.option("authentication", "ActiveDirectoryPassword")
.load()
正在写入Azure SQL(Dataproc失败):
df.write
.format("jdbc")
.mode(mode)
.option("url", url)
.option("database", database)
.option("user", user)
.option("password", password)
.option("dbtable", table)
.option("authentication", "ActiveDirectoryPassword")
.save()
Maven Shade插件:
<relocation>
<pattern>com</pattern>
<shadedPattern>repackaged.com.microsoft</shadedPattern>
<includes>
<include>com.microsoft.**</include>
</includes>
</relocation>
其他Azure依赖项:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>adal4j</artifactId>
<version>1.6.7</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>spark-mssql-connector_2.12</artifactId>
<version>1.2.0</version>
</dependency>
我通过在写操作中添加. ption("驱动程序","com.microsoft.sqlserver.jdbc.SQLServerDriver")
解决了这个问题,并且成功了。发现此处突出显示的问题
问题内容: 我正在尝试使用JavaMail API发送电子邮件。我从自解压二进制文件在我的主目录中安装了jdk 1.5。我正在使用Ubintu 9.10 我使用下一条命令编译程序: 〜/ jdk1.5.0_22 / bin / javac -classpath〜/ jdk1.5.0_22 / jre / lib / javamail-1.4.3 / mail.jar:〜/ jdk1.5.0_22
问题内容: 我正在使用gradle作为JavaFX插件。即使在 distribution /下 构建和运行可执行文件之后,一切都可以完美运行,但只有一类: 为了多种目的,我创建了以下对象: 在IDE中运行该程序没问题,一切正常。但是,如果我构建并尝试运行.exe文件,则会得到以下-StackTrace: 我真的不明白。怎么可能找不到这个类,而我所有其他的类却都找不到呢? 我的build.gradl
我在WebSphere8.5.5上使用Quartz-2.2.3,在集群环境中,我有2个节点,每个节点上有3个JVM。 我正在应用程序启动时配置作业。 问题是作业在每个节点上配置一次,我希望它在两个节点上只配置一次,而不是每个节点上都配置一次。 我的配置如下: QuartzConfig.Properties: ApplicationContextListener:
问题内容: 我已经包含了从Eclipse Android项目构建的JAR文件,并且在我的Android Studio项目中引用了它,如下所示: 这有效,并且我能够自动完成代码引用。当我编译APK时,一切都很好。我安装并运行,然后收到no class def错误: 但是,当我解压缩APK并使用dexdump查看classes.dex文件时,我看到上面的类存在。 为什么然后在运行时出现此类未找到错误?
我正在使用PHP*TCPDF/FPDI类动态生成PDF。。 虽然本地发展(WAMP/localhost)... 现在我已经把东西上传到了直播服务器上。。我在同一个文件上只得到一张空白页。。使用相同的目录结构。。 但是,在实时环境中进行测试时。。它不起作用? 只是一个空白页,没有错误...等等。 这是我目前使用的代码。。 (我试图在构造函数和超文本标记语言输出中添加UTF-8编码...?? 代码:
我尝试了本地minikube和kubeadm Kubernetes集群,并通过https://github.com/jenkinsci/kubernetes-plugin运行Jenkins服务器,并使用。 以下是了解这个问题的更多细节。