java - Spark:读取/写入 CSV 时出现 ClassNotFoundException
问题描述
我正在尝试将如下 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>
我使用 spark 1.6.0 和 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。
有人可以帮我解决这个问题吗?
解决方案
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
尝试将其添加到 pom.xml 中。如果这不起作用,请从此处手动下载 JAR https://mvnrepository.com/artifact/org.apache.commons/commons-csv/1.5并添加使用--jars来触发提交。那肯定能解决问题
推荐阅读
- graph - Attention is All you Need 中的图表是如何绘制的?
- python - 如何绘制一个非常复杂的函数的导数
- javascript - Svg图像在android中显示黑色
- amazon-web-services - 在本地使用 AWS ML 模型 Random Cut Forest
- ruby-on-rails - 无法通过 GoogleOauth2 对您进行身份验证,因为“真实性错误”
- python - 为什么我不能在 python 中导入我自己的文件夹?
- symfony - 在创建文档 PDF Symfony 期间检索用户
- java - 如何在 Java 中为德语使用 Open NLP “NER”?
- python - Python Bokeh - 使用 CheckboxGroup 和 JS 回调过滤散点图
- amazon-web-services - 如果下游服务关闭,则停止 AWS lambda 事件源推送事件