我正在尝试将以下DataFrame写入HDFS上的CSV文件df.write() .format("com.databricks.spark.csv") .option("header", "true") .save("/user/cloudera/csv");但我收到以下错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat...Caused by: java.lang.ClassNotFoundException: org.apache.commons.csv.CSVFormat... 21 more我的pom.xml具有以下依赖关系<dependency> <groupId>com.databricks</groupId> <artifactId>spark-csv_2.10</artifactId> <version>1.5.0</version></dependency><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.5</version></dependency><dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.10</artifactId> <version>1.6.0</version></dependency>我将scala 1.0.5与scala 2.10.5结合使用,并使用以下命令提交作业spark-submit --jars /path/spark-csv_2.10-1.5.0.jar --class com.iris.Begin /path/CsvSolver.jar我在.m2存储库中也有commons-csv / 1.1和commons-csv / 1.5。有人可以帮我吗?
3 回答
GCT1015
TA贡献1827条经验 获得超4个赞
最好构建将包含所有依赖项的胖jar(spark-core应标记为provided),并仅提交此jar,而不带任何其他--jars选项。
在Maven中,您可以通过使用具有预定义配置文件jar-with-dependencies的Maven Assembly插件来生成胖子jar 。就像是:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
添加回答
举报
0/150
提交
取消