java.lang.ClassNotFoundException:text.DefaultSource
我有一个带有spark的scala maven应用程序。我使用Intellij的想法。我用它做了一个可执行jar,但当我试图通过windows控制台启动它时,出现了一个关于缺少某些类的错误。我无法确定是否存在问题,因为我已将其添加到.pom文件的块中。另外,当我查看.jar内部时,我看到了包含该类的库: .jar中需要的库: 我尝试使用两个插件:maven shade插件和maven assembly插件,结果是一样的。我试图通过Intellij中的project structure->libraries在类路径中显式设置这个库: IDEA中的类路径: 任何帮助都将不胜感激! 这是我的密码:java.lang.ClassNotFoundException:text.DefaultSource,java,scala,maven,apache-spark,intellij-idea,Java,Scala,Maven,Apache Spark,Intellij Idea,我有一个带有spark的scala maven应用程序。我使用Intellij的想法。我用它做了一个可执行jar,但当我试图通过windows控制台启动它时,出现了一个关于缺少某些类的错误。我无法确定是否存在问题,因为我已将其添加到.pom文件的块中。另外,当我查看.jar内部时,我看到了包含该类的库: .jar中需要的库: 我尝试使用两个插件:maven shade插件和maven assembly插件,结果是一样的。我试图通过Intellij中的project structure->lib
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.ml.recommendation.{ALS, ALSModel}
import org.apache.spark.sql.functions._
import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}
import scala.collection.{Map, Set}
import scala.collection.mutable.ArrayBuffer
import scala.util.Random
object RunRecommender {
def main(args: Array[String]): Unit = {
val spark: SparkSession =SparkSession.builder()
.master("local")
.appName("Recommender Engines with Audioscrobbler data")
.config("spark.sql.warehouse.dir", "spark-warehouse")
.getOrCreate()
val rawUserArtistData: Dataset[String] = spark.read.textFile("user_artist_data.txt")
val rawArtistData: Dataset[String] = spark.read.textFile("artist_data.txt")
val rawArtistAlias: Dataset[String] = spark.read.textFile("artist_alias.txt")
val runRecommender: RunRecommender = new RunRecommender(spark)
runRecommender.preparation(rawUserArtistData, rawArtistData, rawArtistAlias)
runRecommender.model(rawUserArtistData, rawArtistData, rawArtistAlias)
runRecommender.evaluate(rawUserArtistData, rawArtistAlias)
runRecommender.recommend(rawUserArtistData, rawArtistData, rawArtistAlias)
}
}
这是我的.pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>recommends</groupId>
<artifactId>recommends</artifactId>
<packaging>jar</packaging>
<name>Recommender Engine with Audioscrobbler data</name>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>mavencentral</id>
<name>Maven Central</name>
<url>https://repo1.maven.org/maven2/</url>
<layout>default</layout>
</repository>
</repositories>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<archive>
<manifest>
<mainClass>RunRecommender</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>scala-compile-first</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>RunRecommender</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</project>
我有一个长相相似的问题,对我来说,maven中的这个元素缺失了:
org.apache.spark
spark-sql_2.11
2.3.2
我有一个长相相似的问题,对我来说,maven中的这个元素缺失了:
org.apache.spark
spark-sql_2.11
2.3.2
只有当您尝试使用spark submit运行jar而不是终端中的java-jar来运行同一个jar时,才能轻松解决此问题。只有当您尝试使用spark submit运行jar而不是终端中的java-jar来运行同一个jar时,才能轻松解决此问题。它正在寻找一个完全限定名为text.DefaultSource
。您显示为屏幕截图的目录是针对包org.apache.spark.sql.execution.datasources.text
。感谢您的评论!我应该在哪里添加它?添加什么?我不知道你在问什么——我也不知道解决办法,我只是认为它能帮助你诊断。这对我很有帮助。我遇到了一个问题,因为java.lang.ClassNotFoundException:.DefaultSource导致我获取此日志行。这让我注意到,在我们的代码中将输出类型的字符串名设置为”
,其中有一个错误。它正在寻找一个完全限定名为text.DefaultSource
的类。您显示为屏幕截图的目录是针对包org.apache.spark.sql.execution.datasources.text
。感谢您的评论!我应该在哪里添加它?添加什么?我不知道你在问什么——我也不知道解决办法,我只是认为它能帮助你诊断。这对我很有帮助。我遇到了一个问题,因为java.lang.ClassNotFoundException:.DefaultSource
导致我获取此日志行。这让我注意到,在我们的代码中将输出类型的字符串名称设置为“
”时出现了一个错误。这是一个注释还是一个答案?如果这是一个答案,您能否详细说明spark submit的输出将增加哪些内容,以及如何使用这些内容来解决问题?这是一个评论,还是一个答案?如果这是一个答案,您能否详细说明spark submit的输出将增加哪些内容,以及如何使用这些内容来解决这个问题?
16/11/06 11:56:40 WARN SparkContext: Use an existing SparkContext, some configuration may not take effect.
16/11/06 11:56:40 INFO SharedState: Warehouse path is 'spark-warehouse'.
Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: text. Please find packages at http://spark-packages.org
at org.apache.spark.sql.execution.datasources.DataSource.lookupDataSource(DataSource.scala:145)
at org.apache.spark.sql.execution.datasources.DataSource.providingClass$lzycompute(DataSource.scala:78)
at org.apache.spark.sql.execution.datasources.DataSource.providingClass(DataSource.scala:78)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:310)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149)
at org.apache.spark.sql.DataFrameReader.text(DataFrameReader.scala:492)
at org.apache.spark.sql.DataFrameReader.textFile(DataFrameReader.scala:528)
at org.apache.spark.sql.DataFrameReader.textFile(DataFrameReader.scala:501)
at RunRecommender$.main(RunRecommender.scala:20)
at RunRecommender.main(RunRecommender.scala)
Caused by: java.lang.ClassNotFoundException: text.DefaultSource
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5$$anonfun$apply$1.apply(DataSource.scala:130)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5$$anonfun$apply$1.apply(DataSource.scala:130)
at scala.util.Try$.apply(Try.scala:192)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5.apply(DataSource.scala:130)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$5.apply(DataSource.scala:130)
at scala.util.Try.orElse(Try.scala:84)
at org.apache.spark.sql.execution.datasources.DataSource.lookupDataSource(DataSource.scala:130)
... 9 more
16/11/06 11:56:40 INFO SparkContext: Invoking stop() from shutdown hook
1