我正在尝试使用Databricks XML文件阅读器api。
示例代码:
val spark = SparkSession
.builder()
.master("local[*]")
.appName("Java Spark SQL basic example")
.config("spark.sql.warehouse.dir", "file:///C:/TestData")
.getOrCreate();
//val sqlContext = new SQLContext(sc)
val df = spark.read
.format("com.databricks.spark.xml")
.option("rowTag", "book")
.load("books.xml")
df.show()
如果我直接给出文件路径,它会查找某个仓库目录。所以我设置了spark.sql.warehouse.dir
选项,但现在它抛出输入路径不存在。
它实际上是在项目根目录下查找,为什么要查找项目根目录?
终于工作了。我们还需要指定仓库目录,并在load方法中传递绝对文件路径。我不确定仓库目录有什么用。
主要部分是我们不需要像其他Stackoverflow答案中提到的那样给出C:。
工作代码:
val spark = SparkSession
.builder()
.master("local[*]")
.appName("Java Spark SQL basic example")
.config("spark.sql.warehouse.dir", "file:///TestData/")
.getOrCreate();
//val sqlContext = new SQLContext(sc)
val df = spark.read
.format("com.databricks.spark.xml")
.option("rowTag", "book")
.load("file:///TestData/books.xml")
df.show()