我想在 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 使用那个包呢?
提前致谢!
我想在 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 使用那个包呢?
提前致谢!
您需要先将 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 方法加载的包的上下文。
在笔记本中,使用类似:
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,因此此时不应将其视为折旧。
开始编辑
%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 文件
您可以在 Spark Interpreter 依赖项下添加 jar 文件:
另一种解决方案:
在 conf/zeppelin-env.sh(对我来说位于 /etc/zeppelin)中添加以下行:
export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.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