使用spark-csv在zeppelin中读取csv文件

fab*_*sta 11 apache-spark apache-zeppelin

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

在火花壳中,我可以使用spark-csv

spark-shell --packages com.databricks:spark-csv_2.11:1.2.0
Run Code Online (Sandbox Code Playgroud)

但是,如何告诉Zeppelin使用该软件包?

提前致谢!

Sim*_*all 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")
Run Code Online (Sandbox Code Playgroud)

或者,如果您想在所有笔记本中使用此功能,则可以在Zeppelin的解释器配置中将--packages选项添加到spark-submit命令设置,然后重新启动解释器.这应该根据spark-shell方法启动已经加载的包的上下文.


Pau*_*gen 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")
    
    Run Code Online (Sandbox Code Playgroud)

更新:

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

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

现在趋势是保持%dep,因此此时不应该被视为折旧.