Ich habe den folgenden Code:Fehlgeschlagen Datenquelle zu finden: Parkett, beim Bau mit sbt Montage
val testRDD: RDD[(String, Vector)] = sc.parallelize(testArray)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
val df = testRDD.toDF()
df.write.parquet(path)
mit folgendem build.sbt:
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.1"
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "1.6.1"
// META-INF discarding
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case "reference.conf" => MergeStrategy.concat
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
}
Wenn ich bauen diese mit sbt- Montage (ich habe addSbtPlugin ("com.eed3si9n" % "sbt-assembly" % "0.12.0")), und dann habe ich es laufen lasse, erhalte ich eine Fehlermeldung:
Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: parquet. Please find packages at http://spark-packages.org
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:77)
at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:219)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:148)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:139)
at org.apache.spark.sql.DataFrameWriter.parquet(DataFrameWriter.scala:334)
at InductionService.Application$.main(ParquetTest.scala:65)
wenn jedoch Ich baue das mit IntelliJ Idea (normales Build, nicht fett JAR Art von Sache als mit sbt Assembly), und debuggen es innerhalb dieser IDE, es funktioniert tatsächlich. Es ist also klar, dass etwas nicht stimmt mit der Art und Weise, wie ich das mit sbt assembly aufbaue, aber ich weiß nicht, wie ich es beheben soll. Irgendwelche Ideen?
Ich habe den Verdacht, dass der merge-inf-Verwerfungscode in build.sbt die Ursache sein könnte, aber ich brauche diesen Code sonst kann ich nicht mit sbt-Assembly erstellen. (es beschwert sich über Duplikate ...)
Ich habe das gleiche Problem mit Maven-Montage-Plugin – omrsin