Scala 将spark数据帧中每个分区的记录写入xml文件

Scala 将spark数据帧中每个分区的记录写入xml文件,scala,spark-dataframe,apache-zeppelin,spark-csv,apache-spark-xml,Scala,Spark Dataframe,Apache Zeppelin,Spark Csv,Apache Spark Xml,我必须对spark数据帧中每个分区的文件进行记录计数,然后将输出写入XML文件 这是我的数据框 dfMainOutputFinalWithoutNull.coalesce(1).write.partitionBy("DataPartition","StatementTypeCode") .format("csv") .option("nullValue", "") .option("header", "true") .option("codec", "gzip") .save

我必须对spark数据帧中每个分区的文件进行记录计数,然后将输出写入XML文件

这是我的数据框

dfMainOutputFinalWithoutNull.coalesce(1).write.partitionBy("DataPartition","StatementTypeCode")
  .format("csv")
  .option("nullValue", "")
  .option("header", "true")
  .option("codec", "gzip")
  .save("s3://trfsdisu/SPARK/FinancialLineItem/output")
现在,我必须计算每个分区中每个文件中的记录数,然后将输出写入XML文件

这就是我试图做到的

val count =dfMainOutputFinalWithoutNull.groupBy("DataPartition","StatementTypeCode").count

  count.write.format("com.databricks.spark.xml")
  .option("rootTag", "items")
  .option("rowTag", "item")
  .save("s3://trfsdisu/SPARK/FinancialLineItem/Descr")
我能够打印每个分区的总记录数并打印出来,但当我试图创建xml文件时,我发现下面的错误

java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.xml. Please find packages at http://spark.apache.org/third-party-projects.html
我使用的是
Spark 2.2.0,齐柏林飞艇0.7.2

所以我必须导入
com.databricks.spark.xml
这个,但是为什么呢?因为在csv文件的情况下,如果我不导入
com.databricks.spark.csv

另外,我是否可以使用cache
dfmainpoutputfinalwhithoutnull
,因为我将使用它两次写入其数据,然后计算其分区记录,然后写入xml文件

我添加了这个依赖项

  <!-- https://mvnrepository.com/artifact/com.databricks/spark-xml_2.10 -->
<dependency>
    <groupId>com.databricks</groupId>
    <artifactId>spark-xml_2.10</artifactId>
    <version>0.2.0</version>
</dependency>

我会回答我的问题

所以我在zepplin中添加了以下依赖项

Scala 2.11

groupId: com.databricks
artifactId: spark-xml_2.11
version: 0.4.1
在zepplin中添加以下内容

com.databricks:spark-xml_2.11:0.4.1

然后我就可以创建文件了。

我会回答我的问题

所以我在zepplin中添加了以下依赖项

Scala 2.11

groupId: com.databricks
artifactId: spark-xml_2.11
version: 0.4.1
在zepplin中添加以下内容

com.databricks:spark-xml_2.11:0.4.1
然后我就可以创建文件了