Мой вопрос очень простой, мой код работает нормально. Но мне не ясны эти два момента:
1) когда мы отправляем любое задание pyspark с помощью spark-submit, нужно ли нам создавать объект сеанса spark, подобный этому? в моем сценарии:
from pyspark.sql import SparkSession,SQLContext
from pyspark.conf import SparkConf
spark = SparkSession \
.builder \
.enableHiveSupport() \
.appName("test") \
.getOrCreate()
print(spark)
sqlContext = SQLContext(spark)
или я могу напрямую получить доступ к объекту сеанса искры в своем скрипте, не создавая его.
from pyspark.sql import SparkSession,SQLContext
from pyspark.conf import SparkConf
print(spark) -- this can be ***sc*** not sure I am using spark-2
sqlContext = SQLContext(spark)
и если объект сеанса искры доступен, то как я могу добавить свойства конфигурации, такие как ниже, или как включить поддержку улья.
spark = SparkSession \
.builder \
.enableHiveSupport() \
.config(conf=SparkConf().set("spark.driver.maxResultSize", "2g")) \
.appName("test") \
.getOrCreate()
2) Другой подход заключается в том, что без использования spark-submit я могу написать свой код python для создания объекта spark-session и использовать его как это
Я сомневаюсь, что если я отправлю задание, используя spark-submit и создав объект сеанса spark, как указано выше, я закончу тем, что создам два сеанса spark?
Было бы очень полезно, если бы кто-нибудь объяснил мне дополнительное преимущество использования spark-submit по сравнению с методом шага 2. И нужно ли мне создавать объект spark-session, если я вызываю задание с помощью spark-submit из командной строки?