Динамическая загрузка com.databricks:spark-csv spark package в мое приложение
Мне нужно динамически загружать пакеты spark com.csv в мое приложение, используя spark submit, все работает
spark-submit --class "DataLoaderApp" --master yarn
--deploy-mode client
--packages com.databricks:spark-csv_2.11:1.4.0 target/scala-2.10/ra-etl_2.10-1.0.0.jar LOAD GGSN /data-sources/DXE_Ver/1_4/MTN_Abuja/GGSN/20160221/GGSN_0_20160221074731.dat
но когда я использую
spark-submit --class "DataLoaderApp" --master yarn
--deploy-mode client
target/scala-2.10/ra-etl_2.10-1.0.0.jar LOAD GGSN /data-sources/DXE_Ver/1_4/MTN_Abuja/GGSN/20160221/GGSN_0_20160221074731.dat
для приведенной ниже конфигурации это не работает...
val conf = new SparkConf()
.setAppName("Data Loader Application")
.set("spark.jar.packages","com.databricks:spark-csv_2.11:1.4.0")
1 ответ
С помощью spark-csv
с помощью SparkConf
кажется все еще открытым вопросом. Тем не менее, если ваша цель состоит в том, чтобы избавить от необходимости набирать --packages
аргумент каждый раз, когда вы звоните spark-submit
, вы можете добавить соответствующие зависимости в вашем spark-defaults.conf
файл (обычно находится в вашем $SPARK_HOME/conf
каталог) следующим образом:
Найдите пути
spark-csv_2.11-1.4.0.jar
и его зависимости,commons-csv-1.1.jar
а такжеunivocity-parsers-1.5.1.jar
, Они должны уже присутствовать в вашей системе, если вы уже использовалиspark-csv
один раз; в моем случае (пользовательctsats
) эти пути:/home/ctsats/.ivy2/cache/com.databricks/spark-csv_2.11/jars/spark-csv_2.11-1.4.0.jar /home/ctsats/.ivy2/cache/org.apache.commons/commons-csv/jars/commons-csv-1.1.jar /home/ctsats/.ivy2/cache/com.univocity/univocity-parsers/jars/univocity-parsers-1.5.1.jar
открыто
spark-defaults.conf
файл (в$SPARK_HOME/conf
- создайте его, если он не существует), и добавьте вышеуказанные пути с аргументомspark.driver.extraClassPath
То есть, если ваши пути такие же, как указано выше, добавьте следующую строку:spark.driver.extraClassPath /home/ctsats/.ivy2/cache/com.databricks/spark-csv_2.11/jars/spark-csv_2.11-1.4.0.jar:/home/ctsats/.ivy2/cache/org.apache.commons/commons-csv/jars/commons-csv-1.1.jar:/home/ctsats/.ivy2/cache/com.univocity/univocity-parsers/jars/univocity-parsers-1.5.1.jar
Теперь spark-csv
пакет будет автоматически загружен при каждом вызове spark-submit
или же spark-shell
,
Пожалуйста, дайте мне знать, если это сработало для вас...