我想在Zeppelin中阅读csv文件并想使用数据库' 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使用那个包呢?
提前致谢!
答案 0 :(得分: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方法启动已经加载的包的上下文。
答案 1 :(得分:8)
在笔记本中,请使用以下内容:
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用户邮件列表中,现在(2016年11月)Moon Soo Lee(Apache Zeppelin的创建者)表示用户更愿意保留%dep,因为它允许:
现在倾向于保持%dep,因此此时不应将其视为折旧。
答案 2 :(得分:4)
<强> BEGIN-修改
%dep在Zeppelin 0.6.0中已弃用。请参考Paul-Armand Verhaegen的回答。
如果您使用的是早于0.6.0的zeppelin
,请在此答案中进一步阅读<强> END-修改
您可以使用%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文件
答案 3 :(得分:1)
您可以在Spark解释器依赖项下添加jar文件:
答案 4 :(得分:0)
如果你在conf / zeppelin-env.sh中定义
export SPARK_HOME=<PATH_TO_SPARK_DIST>
然后Zeppelin会查看$ SPARK_HOME / conf / spark-defaults.conf,你可以在那里定义jar:
spark.jars.packages com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41
然后看看
http:// zepplin_url :4040 /环境/以下内容:
spark.jars 文件:/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
答案 5 :(得分:0)
另一种解决方案:
在conf / zeppelin-env.sh(对我来说位于/ etc / zeppelin中)添加以下行:
export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"
然后启动服务。