Как я могу получить доступ к SparkContext в Datapro c? - PullRequest
1 голос
/ 23 апреля 2020

Моя цель состоит в том, чтобы использовать oop разъем эластичного поиска для загрузки данных непосредственно в ES с помощью pySpark. Я довольно новичок в datapro c и pySpark и застрял довольно рано.

Я запускаю кластер с одним узлом (Изображение 1.3, Debian 9, Had oop 2.9, Spark 2.3) и это мой код , Я предполагаю, что мне нужно установить Java.

Спасибо!

from pyspark.sql import SQLContext
from pyspark.sql.functions import lit
import os
from pyspark.sql import SparkSession

def install_java():
  !apt-get install -y openjdk-8-jdk-headless -qq > /dev/null      #install openjdk
  os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"     #set environment 
  variable
  !java -version       #check java version
  install_java()

conf = SparkConf().setAppName("testing").setMaster('ip-address')

sc = SparkContext.getOrCreate()

ExceptionTraceback (most recent call last)
<ipython-input-18-df37a24b7514> in <module>()
----> 1 sc = SparkContext.getOrCreate()

/usr/lib/spark/python/pyspark/context.pyc in getOrCreate(cls, conf)
361         with SparkContext._lock:
362             if SparkContext._active_spark_context is None:
--> 363                 SparkContext(conf=conf or SparkConf())
364             return SparkContext._active_spark_context
365 

/usr/lib/spark/python/pyspark/context.pyc in __init__(self, master, appName, sparkHome,                 
pyFiles, environment, batchSize, serializer, conf, gateway, jsc, profiler_cls)
127                     " note this option will be removed in Spark 3.0")
128 
--> 129         SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
130         try:
131             self._do_init(master, appName, sparkHome, pyFiles, environment, batchSize, 
serializer,

/usr/lib/spark/python/pyspark/context.pyc in _ensure_initialized(cls, instance, gateway, 
conf)
310         with SparkContext._lock:
311             if not SparkContext._gateway:
--> 312                 SparkContext._gateway = gateway or launch_gateway(conf)
313                 SparkContext._jvm = SparkContext._gateway.jvm
314 

/usr/lib/spark/python/pyspark/java_gateway.pyc in launch_gateway(conf)
 44     :return: a JVM gateway
 45     """
---> 46     return _launch_gateway(conf)
 47 
 48 

/usr/lib/spark/python/pyspark/java_gateway.pyc in _launch_gateway(conf, insecure)
106 
107             if not os.path.isfile(conn_info_file):
--> 108                 raise Exception("Java gateway process exited before sending its port 
number")
109 
110             with open(conn_info_file, "rb") as info:

Exception: Java gateway process exited before sending its port number

1 Ответ

1 голос
/ 23 апреля 2020

Хорошо, решено, мне нужно было остановить текущий контекст, прежде чем я создам свой новый SparkContext.

s c .stop ()

...