delta-io / delta

An open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs
https://delta.io
Apache License 2.0
7.52k stars 1.69k forks source link

java.lang.ClassNotFoundException: Failed to find data source: delta" - STILL & AGAIN #947

Closed khorn-infomedia closed 2 years ago

khorn-infomedia commented 2 years ago

It would be a nice feature of DeltaLake if it can be an easy to use component within a submittable Uber.jar, using Java, and MVN, without having to become a world expert in MVN to use it. The class incompatibility issues with Spark, and DeltaLake seem to be very common. My blocking Issue is the code below produces this, when submit:

"Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: delta" issue. In the case:

Dataset df = ...... // valid data.
df.write().format("delta") .mode("overwrite") .save("/opt/spark-data/mydata");

The first symptom of a problem was that the "overwrite" was failing on AWS S3 for an existing folder, but now its the "delta" string issue. DeltaLake works fine in local mode, with non-uber jar. I made it a local directory to test removing S3, in above.

As one person commented this makes DeltaLake un-usable. Many people have tackled this but there is no definitive answer, threads get closed with no solution, with many magical comments that don't seem to work. See related threads below. I think an example and a POM file for this should be part of the DeltaLake documentation, given the complexity and common nature of this issue, as it occurs with other components like Kafka, Avro. There are no Java example in Delta source, maybe this would be a good example.

The "delta" string cannot be provided with full class definition, to resolve this. DeltaLake (and Spark) using untyped strings and not a FINAL String member is in itself poor programming practise.

So is there a 're-usable' MVN pom file (Not Gradle) that does a Uber.jar build of DeltaLake, with AWS libraries, for Java, that can be submitted to Spark and it actually works ? Not using the --packages and local --jars etc. If there is, I can help document this into the DeltaLAke documentation to make a contribution. It requires using mvn-shade to merge the META INF/services/org.apache.spark.sql.sources.DataSourceRegister of all the data sources,, not replace or first or whatever strategy you use. I have tried many things but nothing yet works ?

I have a full project for this, can provide more, but here are some snippets:

1.8 2.12 3.2.0 4.13.1 1.1.0 3.2.0 3.0.1 1.6.0 3.2.4 org.apache.spark spark-core_${scala.version} ${spark.version} org.apache.spark spark-sql_${scala.version} ${spark.version} io.delta delta-core_${scala.version} ${delta.version} org.apache.hadoop hadoop-aws ${hadoop.version} Spark runtime is : spark-3.2.1-bin-hadoop3.2 Other threads: https://github.com/delta-io/delta/issues/224 https://stackoverflow.com/questions/63456301/spark-maven-dependency-incompatibility-between-delta-core-and-spark-avro https://stackoverflow.com/questions/41303037/why-does-spark-application-fail-with-classnotfoundexception-failed-to-find-dat https://stackoverflow.com/questions/48011941/why-does-formatkafka-fail-with-failed-to-find-data-source-kafka-even-wi
khorn-infomedia commented 2 years ago

Ok another hour and worked it out: Here is the full POM file. I am now adding exclusions back in, and will publish final POM later and close. There is Assembly and Shade options, so

<?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>com.thing</groupId>
  <artifactId>csv-to-delta</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <scala.version>2.12</scala.version>
    <spark.version>3.2.0</spark.version>
    <junit.version>4.13.1</junit.version>
    <delta.version>1.1.0</delta.version>
    <hadoop.version>3.2.0</hadoop.version>   
    <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
    <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
    <maven-shade-plugin.version>3.1.0</maven-shade-plugin.version>
    <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version>
  </properties>

  <dependencies>
    <!-- Spark -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_${scala.version}</artifactId>
      <version>${spark.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_${scala.version}</artifactId>
      <version>${spark.version}</version>
    </dependency>

    <dependency>
      <groupId>io.delta</groupId>
      <artifactId>delta-core_${scala.version}</artifactId>
      <version>${delta.version}</version>
    </dependency>

    <dependency>
   <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-aws</artifactId>
    <version>${hadoop.version}</version>
    </dependency> 

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.10</version>
  </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>shade</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.scala-tools</groupId>
                        <artifactId>maven-scala-plugin</artifactId>
                        <version>${maven-scala-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                        <version>${maven-shade-plugin.version}</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>shade</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                              <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                        <resource>
                            META-INF/services/org.apache.spark.sql.sources.DataSourceRegister
                        </resource>
                    </transformer>
                </transformers>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>assembly</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.scala-tools</groupId>
                        <artifactId>maven-scala-plugin</artifactId>
                        <version>${maven-scala-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
khorn-infomedia commented 2 years ago

I tested the above in docker on a local file system. BUT NOW, it does not work on S3. When I remove DeltaLake the S3 access works ? Seems the DeltaLake Jar is messing with the AWS Hadoop Jar. I am beginning to think DeltaLkae is just not compatible with other components.

2/02/23 00:11:27 INFO MetricsSystemImpl: s3a-file-system metrics system started 22/02/23 00:11:27 WARN FileSystem: Failed to initialize fileystem s3a://kim-spark-test/weather.parquet: java.io.IOException: From option fs.s3a.aws.credentials.provider java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.auth.IAMInstanceCredentialsProvider not found 22/02/23 00:11:27 INFO MetricsSystemImpl: Stopping s3a-file-system metrics system... 22/02/23 00:11:27 INFO MetricsSystemImpl: s3a-file-system metrics system stopped. 22/02/23 00:11:27 INFO MetricsSystemImpl: s3a-file-system metrics system shutdown complete. Exception in thread "main" java.io.IOException: From option fs.s3a.aws.credentials.provider java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.auth.IAMInstanceCredentialsProvider not found at org.apache.hadoop.fs.s3a.S3AUtils.loadAWSProviderClasses(S3AUtils.java:631) at org.apache.hadoop.fs.s3a.S3AUtils.createAWSCredentialProviderSet(S3AUtils.java:597) at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:257) at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3469) at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:174) at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3574) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3521) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:540) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:365)

khorn-infomedia commented 2 years ago

replaced the Hadoop AWS jar with Hadoop-cloud-storage and it now works ?

<dependency>
   <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-aws</artifactId>
    <version>${hadoop.version}</version>
    </dependency> 

replace with:

 <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-cloud-storage</artifactId>
    <version>3.3.1</version>
</dependency>
zsxwing commented 2 years ago

Thanks a lot for the feedback. I have heard multiple times about the issue of META INF/services/org.apache.spark.sql.sources.DataSourceRegister when people try to shade Spark data source libraries, but it's a problem of Java ServiceLoader (a mechanism Spark SQL picks up to look up data sources) rather than a Delta Lake issue.

However, totally agree that a maven example project to show how to shade Delta Lake can be pretty helpful. Feel free to submit a PR to add an example under https://github.com/delta-io/delta/tree/master/examples if you are interested.

Exception in thread "main" java.io.IOException: From option fs.s3a.aws.credentials.provider java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.auth.IAMInstanceCredentialsProvider not found

I feel this error is because you were using an incorrect hadoop-aws version. Not sure what's ${hadoop.version} in your old pom.xml. IAMInstanceCredentialsProvider requires Hadoop 3.3.0.

khorn-infomedia commented 2 years ago

Yes you are correct, tested and it was the hadoop-aws version, thank you. So the current POM is:

<?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>com.thing</groupId>
  <artifactId>delta-s3-update</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <scala.version>2.12</scala.version>
    <spark.version>3.2.0</spark.version>
    <junit.version>4.13.1</junit.version>
    <delta.version>1.1.0</delta.version>
    <hadoop.version>3.3.1</hadoop.version>   
    <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
    <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
    <maven-shade-plugin.version>3.1.0</maven-shade-plugin.version>
    <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_${scala.version}</artifactId>
      <version>${spark.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_${scala.version}</artifactId>
      <version>${spark.version}</version>
    </dependency>

    <dependency>
      <groupId>io.delta</groupId>
      <artifactId>delta-core_${scala.version}</artifactId>
      <version>${delta.version}</version>
    </dependency>

    <dependency>
   <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-aws</artifactId>
    <version>${hadoop.version}</version>
    </dependency> 

     <!-- <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-cloud-storage</artifactId>
    <version>${hadoop.version}</version>
</dependency> -->

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.10</version>
  </dependency>

    <!-- <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency> -->

  </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>shade</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.scala-tools</groupId>
                        <artifactId>maven-scala-plugin</artifactId>
                        <version>${maven-scala-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                        <version>${maven-shade-plugin.version}</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>shade</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                              <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                        <resource>
                            META-INF/services/org.apache.spark.sql.sources.DataSourceRegister
                        </resource>
                    </transformer>
                </transformers>
                 <artifactSet>
                <excludes>
                  <exclude>org.apache.spark</exclude>
                  <!-- <exclude>org.apache.hadoop</exclude> 
                  <exclude>org.apache.parquet</exclude>  -->
                  <exclude>org.apache.avro</exclude>
                  <exclude>*:commons-lang3</exclude>
                  <exclude>*:JavaEWAH</exclude>
                  <exclude>*:RoaringBitmap</exclude>
                  <exclude>*:ST4</exclude>
                  <exclude>*:activation</exclude>
                  <exclude>*:aircompressor</exclude>
                  <exclude>*:antlr</exclude>
                  <exclude>*:antlr-runtime</exclude>
                  <exclude>*:antlr4-runtime</exclude>
                  <exclude>*:aopalliance</exclude>
                  <exclude>*:aopalliance-repackaged</exclude>
                  <exclude>*:apache-log4j-extras</exclude>
                  <exclude>*:apacheds-i18n</exclude>
                  <exclude>*:apacheds-kerberos-codec</exclude>
                  <exclude>*:api-asn1-api</exclude>
                  <exclude>*:api-util</exclude>
                  <exclude>*:arpack_combined_all</exclude>
                  <exclude>*:arrow-format</exclude>
                  <exclude>*:arrow-memory</exclude>
                  <exclude>*:arrow-vector</exclude>
                  <exclude>*:automaton</exclude>
                  <exclude>*:base64</exclude>
                  <exclude>*:bcprov-jdk15on</exclude>
                  <exclude>*:bonecp</exclude>
                  <exclude>*:breeze-macros</exclude>
                  <exclude>*:breeze</exclude>
                  <exclude>*:calcite-avatica</exclude>
                  <exclude>*:calcite-core</exclude>
                  <exclude>*:calcite-linq4j</exclude>
                  <exclude>*:chill-java</exclude>
                  <exclude>*:chill_${scala.version}</exclude>
                  <exclude>*:commons-beanutils</exclude>
                  <exclude>*:commons-beanutils-core</exclude>
                  <exclude>*:commons-cli</exclude>
                  <exclude>*:commons-codec</exclude>
                  <exclude>*:commons-collections</exclude>
                  <exclude>*:commons-compiler</exclude>
                  <exclude>*:commons-compress</exclude>
                  <exclude>*:commons-configuration</exclude>
                  <exclude>*:commons-crypto</exclude>
                  <exclude>*:commons-dbcp</exclude>
                  <exclude>*:commons-digester</exclude>
                  <exclude>*:commons-httpclient</exclude>
                  <exclude>*:commons-io</exclude>
                  <exclude>*:commons-lang</exclude>
                  <exclude>*:commons-logging</exclude>
                  <exclude>*:commons-math3</exclude>
                  <exclude>*:commons-net</exclude>
                  <exclude>*:commons-pool</exclude>
                  <exclude>*:compress-lzf</exclude>
                  <exclude>*:core</exclude>
                  <exclude>*:curator-client</exclude>
                  <exclude>*:curator-framework</exclude>
                  <exclude>*:curator-recipes</exclude>
                  <exclude>*:datanucleus-api-jdo</exclude>
                  <exclude>*:datanucleus-core</exclude>
                  <exclude>*:datanucleus-rdbms</exclude>
                  <exclude>*:derby</exclude>
                  <exclude>*:eigenbase-properties</exclude>
                  <exclude>*:flatbuffers</exclude>
                  <exclude>*:generex</exclude>
                  <exclude>*:gson</exclude>
                  <exclude>*:guava</exclude>
                  <exclude>*:guice</exclude>
                  <exclude>*:guice-servlet</exclude>
                  <exclude>*:hive-beeline</exclude>
                  <exclude>*:hive-cli</exclude>
                  <exclude>*:hive-exec</exclude>
                  <exclude>*:hive-jdbc</exclude>
                  <exclude>*:hive-metastore</exclude>
                  <exclude>*:hk2-api</exclude>
                  <exclude>*:hk2-locator</exclude>
                  <exclude>*:hk2-utils</exclude>
                  <exclude>*:hppc</exclude>
                  <exclude>*:htrace-core</exclude>
                  <exclude>*:httpclient</exclude>
                  <exclude>*:httpcore</exclude>
                  <exclude>*:ivy</exclude>
                  <exclude>*:jackson-*</exclude>
                  <exclude>*:janino</exclude>
                  <exclude>*:java-xmlbuilder</exclude>
                  <exclude>*:javassist</exclude>
                  <exclude>*:javax.annotation-api</exclude>
                  <exclude>*:javax.inject</exclude>
                  <exclude>*:javax.servlet-api</exclude>
                  <exclude>*:javax.ws.rs-api</exclude>
                  <exclude>*:javolution</exclude>
                  <exclude>*:jaxb-api</exclude>
                  <exclude>*:jcl-over-slf4j</exclude>
                  <exclude>*:jdo-api</exclude>
                  <exclude>*:jersey-client</exclude>
                  <exclude>*:jersey-common</exclude>
                  <exclude>*:jersey-container-servlet</exclude>
                  <exclude>*:jersey-container-servlet-core</exclude>
                  <exclude>*:jersey-guava</exclude>
                  <exclude>*:jersey-media-jaxb</exclude>
                  <exclude>*:jersey-server</exclude>
                  <exclude>*:jets3t</exclude>
                  <exclude>*:jetty</exclude>
                  <exclude>*:jetty-util</exclude>
                  <exclude>*:jline</exclude>
                  <exclude>*:joda-time</exclude>
                  <exclude>*:jodd-core</exclude>
                  <exclude>*:jpam</exclude>
                  <exclude>*:json4s-ast</exclude>
                  <exclude>*:json4s-core</exclude>
                  <exclude>*:json4s-jackson</exclude>
                  <exclude>*:jsp-api</exclude>
                  <exclude>*:jsr305</exclude>
                  <exclude>*:jta</exclude>
                  <exclude>*:jtransforms</exclude>
                  <exclude>*:jul-to-slf4j</exclude>
                  <exclude>*:kryo-shaded</exclude>
                  <exclude>*:kubernetes-client</exclude>
                  <exclude>*:kubernetes-model</exclude>
                  <exclude>*:leveldbjni-all</exclude>
                  <exclude>*:libfb303</exclude>
                  <exclude>*:libthrift</exclude>
                  <exclude>*:log4j</exclude>
                  <exclude>*:logging-interceptor</exclude>
                  <exclude>*:lz4-java</exclude>
                  <exclude>*:machinist</exclude>
                  <exclude>*:macro-compat_2.11</exclude>
                  <exclude>*:mesos-1.4.0-shaded-protobuf</exclude>
                  <exclude>*:metrics-core</exclude>
                  <exclude>*:metrics-graphite</exclude>
                  <exclude>*:metrics-json</exclude>
                  <exclude>*:metrics-jvm</exclude>
                  <exclude>*:minlog</exclude>
                  <exclude>*:netty</exclude>
                  <exclude>*:netty-all</exclude>
                  <exclude>*:objenesis</exclude>
                  <exclude>*:okhttp</exclude>
                  <exclude>*:okio</exclude>
                  <exclude>*:opencsv</exclude>
                  <exclude>*:orc-core</exclude>
                  <exclude>*:orc-mapreduce</exclude>
                  <exclude>*:oro</exclude>
                  <exclude>*:osgi-resource-locator</exclude>
                  <exclude>*:paranamer</exclude>
                  <exclude>*:protobuf-java</exclude>
                  <exclude>*:py4j</exclude>
                  <exclude>*:pyrolite</exclude>
                  <exclude>*:scala-compiler</exclude>
                  <exclude>*:scala-library</exclude>
                  <exclude>*:scala-parser-combinators</exclude>
                  <exclude>*:scala-reflect</exclude>
                  <exclude>*:scala-xml_2.11</exclude>
                  <exclude>*:scalap</exclude>
                  <exclude>*:shapeless</exclude>
                 <exclude>*:slf4j-api</exclude>
                  <exclude>*:slf4j-log4j</exclude>
                  <exclude>*:snakeyaml</exclude>
                  <exclude>*:snappy</exclude>
                  <exclude>*:snappy-java</exclude>
                  <exclude>*:spire-macros</exclude>
                  <exclude>*:spire</exclude>
                  <exclude>*:stax-api</exclude>
                  <exclude>*:stream</exclude>
                  <exclude>*:stringtemplate</exclude>
                  <exclude>*:super-csv</exclude>
                  <exclude>*:univocity-parsers</exclude>
                  <exclude>*:validation-api</exclude>
                  <exclude>*:xbean-asm5-shaded</exclude>
                  <exclude>*:xercesImpl</exclude>
                  <exclude>*:xmlenc</exclude>
                  <exclude>*:xz</exclude>
                  <exclude>*:zjsonpatch</exclude>
                  <exclude>*:zookeeper</exclude>
                  <exclude>*:zstd-jni</exclude>
                  <exclude>junit:junit</exclude>
                  <exclude>jmock:*</exclude>
                  <exclude>*:xml-apis</exclude>
                <exclude>log4j:log4j:jar:</exclude> 
                </excludes>  
              </artifactSet>  
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>assembly</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.scala-tools</groupId>
                        <artifactId>maven-scala-plugin</artifactId>
                        <version>${maven-scala-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
scottsand-db commented 2 years ago

Hi @khorn-infomedia - it seems like you and @zsxwing were able to resolve this issue, right?

if so, can you please close this issue. if not, tag me and let me know how I can help :)

khorn-infomedia commented 2 years ago

OK

From: Scott Sandre @.> Date: Wednesday, 9 March 2022 at 8:31 am To: delta-io/delta @.> Cc: Kim Horn @.>, Mention @.> Subject: Re: [delta-io/delta] java.lang.ClassNotFoundException: Failed to find data source: delta" - STILL & AGAIN (Issue #947)

Hi @khorn-infomediahttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkhorn-infomedia&data=04%7C01%7Ckhorn%40infomedia.com.au%7Cc8a362b0980f461185b208da014aeffe%7C45d5407150f849caa59f9457123dc71c%7C0%7C0%7C637823718618324451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=qOB7zuhV%2FfVlA2STu%2BHCOXWgB8MeudcImiB3bdHQirA%3D&reserved=0 - it seems like you and @zsxwinghttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzsxwing&data=04%7C01%7Ckhorn%40infomedia.com.au%7Cc8a362b0980f461185b208da014aeffe%7C45d5407150f849caa59f9457123dc71c%7C0%7C0%7C637823718618324451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=94mM4zf95Q175aKhwtKUy6c3MEQPfOa48H1z01jHH5M%3D&reserved=0 were able to resolve this issue, right?

if so, can you please close this issue. if not, tag me and let me know how I can help :)

— Reply to this email directly, view it on GitHubhttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdelta-io%2Fdelta%2Fissues%2F947%23issuecomment-1062231932&data=04%7C01%7Ckhorn%40infomedia.com.au%7Cc8a362b0980f461185b208da014aeffe%7C45d5407150f849caa59f9457123dc71c%7C0%7C0%7C637823718618324451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=DT0rr2cXgjmibK6lNL%2Fq8AicCS%2FYtv1Sv2V1gvhCblo%3D&reserved=0, or unsubscribehttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALFB3TJUGPSTDNTL4T2UJADU67BJBANCNFSM5PAEJTZA&data=04%7C01%7Ckhorn%40infomedia.com.au%7Cc8a362b0980f461185b208da014aeffe%7C45d5407150f849caa59f9457123dc71c%7C0%7C0%7C637823718618324451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ZHhlFPsrBYC4%2BhpTyD3DQE%2Bd8vKdyu3giDYT7BSZvrw%3D&reserved=0. Triage notifications on the go with GitHub Mobile for iOShttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04%7C01%7Ckhorn%40infomedia.com.au%7Cc8a362b0980f461185b208da014aeffe%7C45d5407150f849caa59f9457123dc71c%7C0%7C0%7C637823718618324451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=T73%2F6M%2F1CUrQzG%2BKP6WkXMHT7x3pP%2FmY3mQ47cFpTU8%3D&reserved=0 or Androidhttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04%7C01%7Ckhorn%40infomedia.com.au%7Cc8a362b0980f461185b208da014aeffe%7C45d5407150f849caa59f9457123dc71c%7C0%7C0%7C637823718618324451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=S1wbc4jbbdhmf7f18%2BYpwDax6NAYVN36%2FmMcSJzcq4I%3D&reserved=0. You are receiving this because you were mentioned.Message ID: @.***>

This email contains confidential information of and is the copyright of Infomedia. It must not be forwarded, amended or disclosed without consent of the sender. If you received this message by mistake, please advise the sender and delete all copies. Security of transmission on the internet cannot be guaranteed, could be infected, intercepted, or corrupted and you should ensure you have suitable antivirus protection in place. By sending us your or any third party personal details, you consent to (or confirm you have obtained consent from such third parties) to Infomedia’s privacy policy. http://www.infomedia.com.au/privacy-policy/