我正在尝试运行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来说是全新的。
版本信息:
答案 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|