в том числе внешний банку в pyspark с использованием pycharm - PullRequest
0 голосов
/ 25 февраля 2020

Я столкнулся с проблемой при попытке включить com.databricks: spark-xml_2.10: 0.4.1 в мой код pyspark в pycharm

import pyspark
from pyspark.shell import sc
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import SparkSession
from pyspark.sql.types import *
from pyspark.sql import SparkSession

import os

sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)

os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages com.databricks:spark-xml_2.10:0.4.1 pyspark-shell"
)



if __name__ == '__main__':


 df = sqlContext.read.format('org.apache.spark.sql.xml') \
        .option('rowTag', 'lei:Extension')
.load('C:\\Users\\Consultant\\Desktop\\20170501-gleif-concatenated-file'
                                                '-lei2.xml')
    df.show()

, но он возвращает

Exception in thread "main" org.apache.spark.SparkException: Cannot load main class from JAR file:/C:/spark-2.4.5-bin-hadoop2.7/python/dependency
    at org.apache.spark.deploy.SparkSubmitArguments.error(SparkSubmitArguments.scala:657)
    at org.apache.spark.deploy.SparkSubmitArguments.loadEnvironmentArguments(SparkSubmitArguments.scala:221)
    at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:116)
    at org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$1.<init>(SparkSubmit.scala:907)
    at org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit.scala:907)
    at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:81)
    at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Traceback (most recent call last):
  File "C:/spark-2.4.5-bin-hadoop2.7/python/test.py", line 2, in <module>
    from pyspark.shell import sc
  File "C:\spark-2.4.5-bin-hadoop2.7\python\pyspark\shell.py", line 38, in <module>
    SparkContext._ensure_initialized()
  File "C:\spark-2.4.5-bin-hadoop2.7\python\pyspark\context.py", line 316, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway(conf)
  File "C:\spark-2.4.5-bin-hadoop2.7\python\pyspark\java_gateway.py", line 46, in launch_gateway
    return _launch_gateway(conf)
  File "C:\spark-2.4.5-bin-hadoop2.7\python\pyspark\java_gateway.py", line 108, in _launch_gateway
    raise Exception("Java gateway process exited before sending its port number")
Exception: Java gateway process exited before sending its port number

Я бы хотел добавить внешний баночек прямо в pycharm. Возможно ли это?

Заранее спасибо.

1 Ответ

0 голосов
/ 26 февраля 2020

Вы должны установить переменную окружения в качестве первого шага вашего скрипта:

import os
os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages com.databricks:spark-xml_2.10:0.4.1"
)

import pyspark
...

Затем, если вы хотите сделать это для любого запускаемого вами скрипта, используйте Run Configurations pycharm. Вы можете добавить шаблон, выполнив следующие действия:

  • Go до Edit Configurations
  • В шаблонах отредактируйте шаблон python
  • Добавьте Environment value как PYSPARK_SUBMIT_ARGS="--packages com.databricks:spark-xml_2.10:0.4.1"

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...