загрузить внешние библиотеки внутри кода pyspark
У меня есть искровой кластер, который я использую в локальном режиме. Я хочу прочитать csv с внешней библиотекой databricks spark.csv. Я запускаю свое приложение следующим образом:
import os
import sys
os.environ["SPARK_HOME"] = "/home/mebuddy/Programs/spark-1.6.0-bin-hadoop2.6"
spark_home = os.environ.get('SPARK_HOME', None)
sys.path.insert(0, spark_home + "/python")
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.2.1-src.zip'))
from pyspark import SparkContext, SparkConf, SQLContext
try:
sc
except NameError:
print('initializing SparkContext...')
sc=SparkContext()
sq = SQLContext(sc)
df = sq.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load("/my/path/to/my/file.csv")
Когда я запускаю его, я получаю следующую ошибку:
java.lang.ClassNotFoundException: Failed to load class for data source: com.databricks.spark.csv.
Мой вопрос: как я могу загрузить библиотеку databricks.spark.csv ВНУТРИ моего кода на python. Я не хочу загружать его извне (используя --packages) из экземпляра.
Я попытался добавить следующие строки, но это не сработало:
os.environ["SPARK_CLASSPATH"] = '/home/mebuddy/Programs/spark_lib/spark-csv_2.11-1.3.0.jar'