Я хочу писать и обновлять Kudu API. Это зависимость maven:
<dependency>
<groupId>org.apache.kudu</groupId>
<artifactId>kudu-client</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.kudu</groupId>
<artifactId>kudu-spark2_2.11</artifactId>
<version>1.1.0</version>
</dependency>
В следующем коде я понятия не имею о параметре KuduContext
.
Мой код в spark2-shell:
val kuduContext = new KuduContext("master:7051")
Также такая же ошибка в потоковой передаче Spark 2.1:
import org.apache.kudu.spark.kudu._
import org.apache.kudu.client._
val sparkConf = new SparkConf().setAppName("DirectKafka").setMaster("local[*]")
val ssc = new StreamingContext(sparkConf, Seconds(2))
val messages = KafkaUtils.createDirectStream("")
messages.foreachRDD(rdd => {
val spark = SparkSession.builder.config(rdd.sparkContext.getConf).getOrCreate()
import spark.implicits._
val bb = spark.read.options(Map("kudu.master" -> "master:7051","kudu.table" -> "table")).kudu //good
val kuduContext = new KuduContext("master:7051") //error
})
Затем ошибка:
org.apache.spark.SparkException: в этой JVM может работать только один SparkContext (см. SPARK-2243). Чтобы игнорировать эту ошибку, установите spark.driver.allowMultipleContexts = true. Текущий запущенный SparkContext был создан по адресу: org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
rdd.sparkContext.getConf
. Зачем вы создаете новый? - person Shaido   schedule 09.01.2018foreach
? У вас есть SparkConf, так что вам не нужен этотrdd.sparkContext.getConf
- person OneCricketeer   schedule 10.01.2018