Чтение свойств из конфигурационного файла spark

Я пытаюсь выполнить следующий код

val spark = SparkSession.builder()
  .appName(“XYZ”)
  .getOrCreate()

Однако я получаю следующую ошибку Ошибка инициализации SparkContext. org.apache.spark.SparkException: главный URL должен быть установлен в вашей конфигурации

The contents of my spark.conf are as follows
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed 
with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 
2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Default system properties included when running spark-submit.
# This is useful for setting default environmental settings.

# Example:
spark.master                       local
# spark.eventLog.enabled           true
# spark.eventLog.dir               hdfs://namenode:8021/directory 
# spark.serializer                 
org.apache.spark.serializer.KryoSerializer
# spark.driver.memory              5g
# spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value - 
Dnumbers="one two three"

Я также установил переменную окружения в моем IntelliJ на spark.master = local .

Может кто-нибудь помочь мне понять, что я делаю не так здесь.

Замечания:

Я не хочу использовать функцию.config("spark.master","local")

2 ответа

Вы можете установить главный URL из любого из них, перечисленных в https://spark.apache.org/docs/2.3.0/submitting-applications.html зависимости от ваших настроек.

Установка мастера в коде

  val spark: SparkSession = SparkSession.builder
  .appName("Test")
  .master("local[*]")
  .enableHiveSupport()
  .getOrCreate()

Я проверил, и это сработало для меня. Вы переименовали spark-defaults.conf.template в spark-defaults.conf?

При выполнении jar с помощью команды spark-submit не нужно указывать мастер-URL в вашем коде, он будет выбран из файла conf. Но когда вы работаете с IntelliJ с помощью "spark.master: local", это время не указывает на установленную искру. Вы должны сделать банку и выполнить ее, используя spark-submit.

Другие вопросы по тегам