#xml #scala #apache-spark
#xml #scala #apache-spark
Вопрос:
Я пытаюсь использовать Scalacheck, класс Gen для генерации данных в моем коде, но у меня возникает эта ошибка при компиляции :
[Ошибка]: ошибка при загрузке Gen, файл класса ‘C:UsersD721628.m2repositoryorgscalacheckscalacheck_2.131.14.3scalacheck_2.13 — 1.14.3.jar (org/scalacheck/Gen.class )’ сломан
Это проект maven. У вас есть решение, или я могу выполнить свой код с помощью spark-shell, но я не знаю, как импортировать библиотеку Scalacheck в консоль spark-shell.
Вот мой pom.xml :
<?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>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins>
<!-- This plugin compiles Scala files -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.1.1</version>
<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>
<!-- This plugin compiles Java files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- disable surefire -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- enable scalatest -->
<plugin>
<groupId>org.scalatest</groupId>
<artifactId>scalatest-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
<junitxml>.</junitxml>
<filereports>WDF TestSuite.txt</filereports>
</configuration>
<executions>
<execution>
<id>test</id>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>only</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/jar-with-deps-with-exclude.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-install-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scalacheck/scalacheck -->
<dependency>
<groupId>org.scalacheck</groupId>
<artifactId>scalacheck_2.13</artifactId>
<version>1.14.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
Комментарии:
1. Спасибо, я не могу использовать Scalacheck с Spark, так что?
2. Ошибка не связана с Spark (но это не отменяет комментарий о его совместимости с Scala 2.13). Что делает ваш pom.xml как выглядит файл? Можете ли вы добавить это в свой пост?
3. Я добавил его, но могу ли я иметь другую альтернативу scalacheck для создания генераторов?
4. Я написал неправильный комментарий, который предназначен только для aws emr, а не для общего извинения.
5. Похоже, что вы используете Scala 2.12 (или более раннюю версию), но трудно сказать наверняка, потому что версия Scala явно не указана. Тем не менее, вы определенно пытаетесь использовать ScalaCheck версии 2.13. (Бинарная совместимость с Scala меняется с каждым младшим выпуском, поэтому библиотеки необходимо создавать для используемой версии Scala .) Нет присущей проблемы с использованием ScalaCheck для тестирования на основе свойств. Попробуйте изменить зависимость на для
ScalaCheck_2.12
и посмотрите, исправит ли это для вас…