0

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

^

堆栈跟踪:

我正在使用带有 Spark/Scala 内核的 Jupyter 笔记本运行它。

我敢肯定有一个简单的错误,但我是 Scala/Spark 的新手。

版本信息:

  • 火花:2.0.1
  • 斯卡拉:2.11.8
4

1 回答 1

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|
于 2017-07-25T08:12:44.473 回答