2

我需要使用 spark submit 将 com.csv spark 包动态加载到我的应用程序中,它可以工作

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")
4

1 回答 1

0

使用spark-csvviaSparkConf似乎仍然是一个悬而未决的问题--packages不过,如果您的目的是节省每次调用时都输入参数的需要spark-submit,您可以在spark-defaults.conf文件中添加相关依赖项(通常位于您的$SPARK_HOME/conf目录中),如下所示:

  1. 找到 的路径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
    
  2. 打开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-submitspark-shell

于 2016-08-16T11:17:22.293 回答