Я пытаюсь подключиться к базе данных Greenplum с помощью Spark для чтения данных из таблицы и сохранения их в виде файла на HDFS. Но я сталкиваюсь с препятствиями с драйвером или разъемом, который я использую. Ниже мой файл build.sbt:
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.0.0" % "provided",
"org.apache.spark" %% "spark-sql" % "2.0.0" % "provided",
"org.json4s" %% "json4s-jackson" % "3.2.11" % "provided",
"org.apache.httpcomponents" % "httpclient" % "4.5.3"
)
Я передаю разъем greenplum от spark-submit, как показано ниже:
try {
Class.forName("io.pivotal.greenplum.spark.GreenplumRelationProvider").newInstance()
}
catch {
case cnf: ClassNotFoundException =>
println("No class def found.")
System.exit(1)
case e: Exception =>
println("No class def found.")
System.exit(1)
}
val yearDF = spark.read.format("greenplum").option("url", connectionUrl)
.option("dbtable", "gptable")
.option("dbschema","gpschema")
.option("user", username)
.option("password", password)
.option("partitionColumn","id")
.option("partitions",450)
.load()
.where("period=2017 and month=12")
.select(colSeq map col:_*)
println(yearDF.count)
Команда Spark-submit:
SPARK_MAJOR_VERSION=2 spark-submit --class com.partition.source.PartitionData --master=yarn --conf spark.ui.port=4090 --driver-class-path /home/etluser/jars/greenplum-spark_2.11-1.3.0.jar --conf spark.jars=/home/etluser/jars/greenplum-spark_2.11-1.3.0.jar --executor-cores 3 --executor-memory 13G --keytab /home/etluser/etluser.keytab --principal etluser@HDPDEV.COM --files /usr/hdp/current/spark2-client/conf/hive-site.xml,connection.properties --name TEST_YEAR --conf spark.executor.extraClassPath=/home/etluser/jars/greenplum-spark_2.11-1.3.0.jar testYear_2.11-0.1.jar
colSeq - это коллекция, которая содержит данные столбца и типа данных, каждый из которых разделен запятой.
Когда я запускаю задание, оно вообще не прогрессирует, а вместо этого заканчивается «Нет такого исключения элемента».
Я сослался на код из ссылки , а официальная документация greenplum дает здесь .
Это проблема с соединителем (greenplum-spark_2.11-1.3.0.jar) или с драйвером? Может ли кто-нибудь дать мне знать, правильные ли использованные банки?