Я пытаюсь сделать первую попытку доступа к каталогу клея из кода scala.
У меня уже были некоторые проблемы при попытке Maven, чтобы иметь возможность построить мой проект (Это очень помогло Какнастроить локальную среду разработки для запуска Scala Spark ETL в AWS Glue? )
Но сейчас я пытаюсь запустить свой код в кластере EMR, и я получаю этот java.lang.NoClassDefFoundError
Это мой код:
import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.{DynamicFrame, DynamicRecord, GlueContext}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession
import org.slf4j.LoggerFactory
import org.apache.spark.sql.functions.{col, month, year}
object JoinAndRelation {
private val logger = LoggerFactory.getLogger(getClass)
def main(sysArgs: Array[String]): Unit = {
//Spark session creation with connection to Glue Catalog
implicit val spark: SparkSession = SparkSession
.builder
.config(new SparkConf().setAppName("TestGlueAccess"))
.getOrCreate()
val sc: SparkContext = spark.sparkContext
val glueContext: GlueContext = new GlueContext(sc)
...
И это ошибка:
19/02/08 15:35:26 INFO Client:
client token: N/A
diagnostics: User class threw exception: java.lang.NoClassDefFoundError: com/amazonaws/services/glue/GlueContext
at org.sergio.poc.JoinAndRelation$.main(JoinAndRelation.scala:41)
at org.sergio.poc.JoinAndRelation.main(JoinAndRelation.scala)
Я смог скомпилировать его с Maven, добавив glue-assembly.jar как зависимость, также пытался добавить aws-java-sdk-core , но это не сработало ...
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>glue-assembly</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/glue-assembly.jar</systemPath>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.445</version>
</dependency>
Наконец, вот команда, которую я использую для запуска:
spark-submit --class org.sergio.poc.JoinAndRelation --master yarn --deploy-mode cluster --executor-память 2G --num-executors 2 MyFirstScalaMavenProject-1.0-SNAPSHOT.jar
Кто-нибудь сталкивался с такой же проблемой?