Чтение свойств из конфигурационного файла 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.