为了账号安全,请及时绑定邮箱和手机立即绑定

Spark:读取/写入CSV时发生ClassNotFoundException

Spark:读取/写入CSV时发生ClassNotFoundException

尚方宝剑之说 2021-04-09 18:15:54
我正在尝试将以下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>


查看完整回答
反对 回复 2021-04-18
  • 3 回答
  • 0 关注
  • 345 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信