运行scala-xml的介绍示例时出错

时间:2017-07-24 22:48:19

标签: scala apache-spark scala-xml

我正在尝试运行README of scala-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")

(从README复制粘贴; books.xml确实在本地目录中)

这给了我错误:

  

名称:编译错误

     

消息:: 1:错误:非法启动定义

.format("com.databricks.spark.xml")

^
     

StackTrace:

我是在带有Spark / Scala内核的Jupyter笔记本上运行的。

我确信这是一个简单的错误,但我对Scala / Spark来说是全新的。

版本信息:

  • Spark:2.0.1
  • Scala:2.11.8

1 个答案:

答案 0 :(得分:0)

您可以使用--packages命令行选项

将包添加到Spark

根据评论和问题,您应该尝试在一行中运行代码,它将解决您的问题"错误:非法开始定义"

val df = spark.read.format("com.databricks.spark.xml").option("rowTag", "book").load("book.xml")

下一步"无法找到数据源:com.databricks.spark.xml。 "

尝试添加库依赖项/包"com.databricks:spark-xml_2.11:0.4.1 "

spark-shell --packages com.databricks:spark-xml_2.11:0.4.1

val df = spark.read.format("com.databricks.spark.xml").option("rowTag", "book").load("book.xml")



df.show
+-----+--------------------+--------------------+---------------+-----+------------+--------------------+
|  _id|              author|         description|          genre|price|publish_date|               title|
+-----+--------------------+--------------------+---------------+-----+------------+--------------------+
|bk101|Gambardella, Matthew|An in-depth look ...|       Computer|44.95|  2000-10-01|XML Developer's G...|
|bk102|          Ralls, Kim|A former architec...|        Fantasy| 5.95|  2000-12-16|       Midnight Rain|
|bk103|         Corets, Eva|After the collaps...|        Fantasy| 5.95|  2000-11-17|     Maeve Ascendant|