spark-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Cutler (JIRA)" <>
Subject [jira] [Commented] (SPARK-12666) spark-shell --packages cannot load artifacts which are publishLocal'd by SBT
Date Wed, 01 Jun 2016 00:23:13 GMT


Bryan Cutler commented on SPARK-12666:

This seems like it is more of an issue with SBT publishLocal, as it publishes an ivy.xml file
without a "default" conf.  Like this, for example

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="">
                <conf name="compile" visibility="public" description=""/>
                <conf name="runtime" visibility="public" description="" extends="compile"/>
                <conf name="test" visibility="public" description="" extends="runtime"/>
                <conf name="provided" visibility="public" description=""/>
                <conf name="optional" visibility="public" description=""/>
                <conf name="it" visibility="public" description="" extends="test"/>
                <conf name="sources" visibility="public" description=""/>
                <conf name="docs" visibility="public" description=""/>
                <conf name="pom" visibility="public" description=""/>

If this file had a conf name="default", or if there were no confs defined an implicit "default"
would be used.  But since it is missing, there is an error when resolving.  I think it's reasonable
for Spark to expect a "default" conf to exist, but we can make it a bit more robust to handle
cases like this where it doesn't exist.  I'll post a PR for this.

> spark-shell --packages cannot load artifacts which are publishLocal'd by SBT
> ----------------------------------------------------------------------------
>                 Key: SPARK-12666
>                 URL:
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Submit
>    Affects Versions: 1.5.1, 1.6.0
>            Reporter: Josh Rosen
> Symptom:
> I cloned the latest master of {{spark-redshift}}, then used {{sbt publishLocal}} to publish
it to my Ivy cache. When I tried running {{./bin/spark-shell --packages com.databricks:spark-redshift_2.10:0.5.3-SNAPSHOT}}
to load this dependency into {{spark-shell}}, I received the following cryptic error:
> {code}
> Exception in thread "main" java.lang.RuntimeException: [unresolved dependency: com.databricks#spark-redshift_2.10;0.5.3-SNAPSHOT:
configuration not found in com.databricks#spark-redshift_2.10;0.5.3-SNAPSHOT: 'default'. It
was required from org.apache.spark#spark-submit-parent;1.0 default]
> 	at org.apache.spark.deploy.SparkSubmitUtils$.resolveMavenCoordinates(SparkSubmit.scala:1009)
> 	at org.apache.spark.deploy.SparkSubmit$.prepareSubmitEnvironment(SparkSubmit.scala:286)
> 	at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:153)
> 	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120)
> 	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
> {code}
> I think the problem here is that Spark is declaring a dependency on the spark-redshift
artifact using the {{default}} Ivy configuration. Based on my admittedly limited understanding
of Ivy, the default configuration will be the only configuration defined in an Ivy artifact
if that artifact defines no other configurations. Thus, for Maven artifacts I think the default
configuration will end up mapping to Maven's regular JAR dependency (i.e. Maven artifacts
don't declare Ivy configurations so they implicitly have the {{default}} configuration) but
for Ivy artifacts I think we can run into trouble when loading artifacts which explicitly
define their own configurations, since those artifacts might not have a configuration named
> I spent a bit of time playing around with the SparkSubmit code to see if I could fix
this but wasn't able to completely resolve the issue.
> /cc [~brkyvz] (ping me offline and I can walk you through the repo in person, if you'd

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message