2016-04-27 63 views
1

我能够通过bin/spark-shell --packages com.databricks:spark-xml_2.11:0.3.0运行星火壳analize XML文件,例如:如何在齐柏林运行星火分析XML文件

import org.apache.spark.sql.SQLContext 

val sqlContext = new SQLContext(sc) 
val df = sqlContext.read 
    .format("com.databricks.spark.xml") 
    .option("rowTag", "book") 
    .load("books.xml") 

,但我怎么可以运行飞艇做如此。 Zeppelin在开始导入com.databricks.spark.xml时是否需要一些参数? 现在我越来越:

了java.lang.RuntimeException:无法加载类数据来源: com.databricks.spark.xml在 scala.sys.package $ .error(package.scala:27 )at org.apache.spark.sql.sources.ResolvedDataSource $ .lookupDataSource(ddl.scala:220) at org.apache.spark.sql.sources.ResolvedDataSource $ .apply(ddl.scala:233) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:114) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:104) at $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:26)at $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:31 )at $ iwC $$ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:33)at $ iwC $$ iwC $$ iwC $$ iwC $$ iwC。(:35)at $ iwC $$:iwC $$ iwC $$ iwC。(:37)at $ iwC $$ iwC $$ iwC。(:39)at $ iwC $$ iwC。(:41) at $ iwC。(:43)at (:45)at 。(:49)at。()at 。(:7)at。()at $ print() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect。 NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java VA:497)在 org.apache.spark.repl.SparkIMain $ ReadEvalPrint.call(SparkIMain.scala:1065) 在 org.apache.spark.repl.SparkIMain $ Request.loadAndRun(SparkIMain.scala:1338) 在 org.apache.spark.repl.SparkIMain.loadAndRunReq $ 1(SparkIMain.scala:840) 在org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) 在org.apache.spark.repl .SparkIMain.interpret(SparkIMain.scala:819) 在 org.apache.zeppelin.spark.SparkInterpreter.interpretInput(SparkInterpreter.java:709) 在 org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java :674) at org.apache.zeppelin.spark.Sp arkInterpreter.interpret(SparkInterpreter.java:667) 在 org.apache.zeppelin.interpreter.ClassloaderInterpreter.interpret(ClassloaderInterpreter.java:57) 在 org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java: 93) 在 org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer $ InterpretJob.jobRun(RemoteInterpreterServer.java:300) 在org.apache.zeppelin.scheduler.Job.run(Job.java:169)在 组织.apache.zeppelin.scheduler.FIFOScheduler $ 1.run(FIFOScheduler.java:134) 在 java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run (FutureTask.java:266)在 java.util.concurrent.ScheduledThreadPoolExecutor中$ $ ScheduledFutureTask.access 201(ScheduledThreadPoolExecutor.java:180) 在 java.util.concurrent.ScheduledThreadPoolExecutor中$ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在 java.util.concurrent中。ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)

回答

4

在Zeppelin中,您需要在创建SparkContext之前调用这些依赖关系。

在一个单独的单元格添加和运行以下

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

如果这让你从类型的错误:“你必须开始你SparkContext之前添加依赖”只需重新启动解释或飞艇。

+0

如果您没有%dep解释器会怎么样?在AWS EMR标准zeppelin上,它似乎没有包含在内。有没有其他的方式来添加这个包? – Davos