将Spark CSV依赖项添加到Zeppelin

Men*_*kes 2 csv apache-spark pyspark apache-zeppelin

我在AWS上运行带有火花簇的EMR.Spark版本是1.6

运行以下命令时:

proxy = sqlContext.read.load("/user/zeppelin/ProxyRaw.csv", 
                          format="com.databricks.spark.csv", 
                          header="true", 
                          inferSchema="true")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Py4JJavaError:调用o162.load时发生错误.:java.lang.ClassNotFoundException:无法找到数据源:com.databricks.spark.csv.请在http://spark-packages.org 上找到包 org.apache.spark.sql.execution.datasources.ResolvedDataSource $ .lookupDataSource(ResolvedDataSource.scala:77)

我怎么解决这个问题?我假设我应该添加一个包但是如何安装它在哪里?

eli*_*sah 5

在Zeppelin中添加包的方法有很多种:

  1. 其中之一是实际更改conf/zeppelin-env.sh配置文件,将您需要的软件包添加com.databricks:spark-csv_2.10:1.4.0到提交选项中,例如,在Zeppelin使用spark-submit引擎盖下的命令时:

    export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.4.0"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 但是,假设您实际上没有访问这些配置.然后,您可以通过%dep解释器使用动态依赖关系加载(不建议使用):

    %dep
    z.load("com.databricks:spark-csv_2.10:1.4.0")
    
    Run Code Online (Sandbox Code Playgroud)

    这将要求您在启动或重新启动解释器之前加载依赖项.

  3. 另一种方法是通过解释器依赖关系管理器添加所需的依赖关系,如以下链接中所述:解释器的依赖关系管理.