我想在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使用那个包呢?
提前感谢!
在使用%dep命令安装Spark Packages之前,您需要将Spark Packages存储库添加到Zeppelin中。
%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")
或者,如果您希望在所有笔记本中都可以使用此功能,则可以将--packages选项添加到Zeppelin解释器配置中的spark-submit命令设置中,然后重新启动解释器。这将启动一个上下文,并按照spark-shell方法已经加载了该包。
In the notebook, use something like:
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用户邮件列表中,Apache Zeppelin的创建者Moon Soo Lee(李文秀)现在(2016年11月)表示用户希望保留%dep,因为它允许:
目前的趋势是保留%dep,所以不应该被视为已经过时。
zeppelin.dep.additionalRemoteRepository
字段中,那么我应该如何确切地加载CSV包呢? - mar tinBEGIN-EDIT
%dep在Zeppelin 0.6.0中已经被弃用,请参考Paul-Armand Verhaegen的答案。
如果您使用的是早于0.6.0版本的zeppelin,请继续阅读本答案。
END-EDIT
您可以使用%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中的“Dependency Loading”部分。
如果您已经初始化了Spark Context,快速解决方案是重新启动Zeppelin并先执行带有上述代码的Zeppelin段落,然后再执行您的Spark代码以读取CSV文件。
export SPARK_HOME=<PATH_TO_SPARK_DIST>
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 file:/root/.ivy2/jars/com.databricks_spark-csv_2.10-1.4.0.jar,file:/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
export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"
然后启动服务。
ZEPPELIN_JAVA_OPTS="-Dspark.jars=/path/to/spark-csv"
- zero323