11

我想在 Zeppelin 中阅读 csv 文件并想使用 databricks 的 spark-csv 包:https ://github.com/databricks/spark-csv

在 spark-shell 中,我可以使用 spark-csv

spark-shell --packages com.databricks:spark-csv_2.11:1.2.0

但是我如何告诉 Zeppelin 使用那个包呢?

提前致谢!

4

6 回答 6

15

您需要先将 Spark Packages 存储库添加到 Zeppelin,然后才能在 spark 包上使用 %dep。

%dep
z.reset()
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven")
z.load("com.databricks:spark-csv_2.10:1.2.0")

或者,如果这是您希望在所有笔记本中都可用的东西,您可以在 Zeppelin 的解释器配置中将 --packages 选项添加到 spark-submit 命令设置,然后重新启动解释器。这应该启动一个已经按照 spark-shell 方法加载的包的上下文。

于 2016-01-08T16:22:53.087 回答
8
  1. 转到解释器选项卡,单击存储库信息,添加一个存储库并将 URL 设置为http://dl.bintray.com/spark-packages/maven
  2. 向下滚动到 spark 解释器段落并单击编辑,向下滚动到工件字段并添加“com.databricks:spark-csv_2.10:1.2.0”或更新版本。然后在询问时重新启动解释器。
  3. 在笔记本中,使用类似:

    import org.apache.spark.sql.SQLContext
    
    val sqlContext = new SQLContext(sc)
    val df = sqlContext.read
        .format("com.databricks.spark.csv")
        .option("header", "true") // Use first line of all files as header
        .option("inferSchema", "true") // Automatically infer data types
        .load("my_data.txt")
    

更新:

在 Zeppelin 用户邮件列表中,Moon Soo Lee(Apache Zeppelin 的创建者)现在(2016 年 11 月)表示,用户更喜欢保留 %dep,因为它允许:

  • 笔记本中的自记录库要求;
  • 每个注释(可能每个用户)库加载。

现在的趋势是保留 %dep,因此此时不应将其视为折旧。

于 2016-08-10T09:44:37.633 回答
4

开始编辑

%dep 在 Zeppelin 0.6.0 中已弃用。请参考 Paul-Armand Verhaegen 的回答。

如果您使用的 zeppelin 早于 0.6.0,请在此答案中进一步阅读

结束编辑

您可以使用 %dep 解释器加载 spark-csv 包。

喜欢,

%dep
z.reset()

// Add spark-csv package
z.load("com.databricks:spark-csv_2.10:1.2.0")

请参阅https://zeppelin.incubator.apache.org/docs/interpreter/spark.html中的依赖项加载部分

如果您已经初始化了 Spark Context,快速的解决方案是重新启动 zeppelin 并首先使用上述代码执行 zeppelin 段落,然后执行您的 spark 代码以读取 CSV 文件

于 2015-10-08T09:53:17.863 回答
1

您可以在 Spark Interpreter 依赖项下添加 jar 文件:

  1. 单击导航栏中的“解释器”菜单。
  2. 单击 Spark 解释器的“编辑”按钮。
  3. 填充工件并排除字段。
  4. 按“保存”
于 2018-03-21T13:49:43.687 回答
0

另一种解决方案:

在 conf/zeppelin-env.sh(对我来说位于 /etc/zeppelin)中添加以下行:

export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"

然后启动服务。

于 2016-10-28T02:14:34.483 回答
0

如果你在 conf/zeppelin-env.sh 中定义

export SPARK_HOME=<PATH_TO_SPARK_DIST>

然后 Zeppelin 将查看 $SPARK_HOME/conf/spark-defaults.conf ,您可以在那里定义罐子:

spark.jars.packages                com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41

然后看看

http:// zepplin_url :4040/environment/ 用于以下内容:

spark.jars 文件:/root/.ivy2/jars/com.databricks_spark-csv_2.10-1.4.0.jar ,文件:/root/.ivy2/jars/org.postgresql_postgresql-9.3-1102-jdbc41.jar

spark.jars.packages com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41

更多参考:https ://zeppelin.incubator.apache.org/docs/0.5.6-incubating/interpreter/spark.html

于 2016-04-15T17:47:51.887 回答