Spark-xml Поколение проблема

Мы пытаемся создать XML-файл в работе spark с javaRDD и Dataframes на языке java. мы дефилируем пользовательский StructType для поддержки нашего кода элементов XML, как показано ниже

    JavaRDD<Row> rowRdd = FeedAttributes.map(attribute ->
                        RowFactory.create(
                            attribute.getProducts() ));

                final StructType struct = DataTypes.createStructType(fields);
                StructType st3 = new StructType(new StructField[] {
                    new StructField("productName", DataTypes.StringType, true, null),
                    new StructField("instock", DataTypes.IntegerType, true, null)
                });
                final DataFrame df2 = this.sqlCon.createDataFrame(rowRdd, st3);

final HdfsReader reader = new HdfsReader(conf);
            df2.repartition(1)
                .write()
                .mode(SaveMode.Overwrite)
                .format("com.databricks.spark.xml")
                .option("rootTag","CATALOG")
                .save(folder.toString());

Боб

public class FeedAttributes implements Serializable{

  private final List<ProductAttributes> products;

}

Мы столкнулись с приведенным ниже исключением, пожалуйста, предложите нам лучший способ для создания файла XML

org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задача 0 на этапе 2.0 не выполнена 1 раз, самый последний сбой: потерянная задача 0.0 на этапе 2.0 (TID 4, localhost): scala.MatchError: (StringType,[ProductAttributes(productName=Bed, instock=1)]) (класса scala.Tuple2) в com.databricks.spark.xml.parsers.stax.StaxXmlGenerator$$anonfun$com$ базы данных $ spark $ xml $ парсеры $stax$StaxXmlGenerator$$writeElement$1$1.apply(StaxXmlGenerator.scala:38) в com.databricks.spark.xml.parsers.stax.StaxXmlGenerator$$anonfun$com$databricks$spark$xml$ анализаторы $ stax $ StaxXmlGenerator $$ writeElement $ 1 $ 1. apply (StaxXmlGenerator.scala: 38) в com.databricks.spark.xml.parsers.stax.StaxXmlGenerator$$anonfun$com$ базы данных $spark$xml$parsers$stax$StaxXmlGenerator$$writeElement$1$1$$anonfun$apply$3.apply(StaxXmlGenerator.scala:86) на com.databricks.spark.xml.parsers.stax.StaxXmlGenerator$$anonfun$com$databricks$spark$xml$parsers$stax$StaxXmlGenerator$$writeElement$1$1$$anonfun$apply$3.Apply(StaxXmlGenerator.scala:74) в scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) в scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108) в com.databricks.spark.xml.parsers.stax.StaxXeneG $$ anonfun $ com $ блоки данных $ spark $ xml $ парсеры $stax$StaxXmlGenerator$$writeElement$1$1.apply(StaxXmlGenerator.scala:74) в com.databricks.spark.xml.parsers.stax.StaxXmlGenerator$$anonfun$com$databricks$spark$xml$ парсеры $ stax $ StaxXmlGenerator $$ writeElement $ 1 $ 1.apply (StaxXmlGenerator.scala: 38) в com.databricks.spark.xml.parsers.stax.StaxXmlGenerator$.apply(StaxXmlGenerator.scala:92) на com.databricks.spark.xml.package$XmlSchemaRDD$$anonfun$5$$anon$1.next(package.scala:106) на com.databricks.spark.xml.package $ XmlSchemaRDD $$ anonfun $ 5 $$ anon $ 1. далее (package.scala:93) в scala.collection.Iterator$$anon$11.next(Iterator.scala:328) в org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1$$anonfun$13$$anonfun$apply$6.apply$mcV$sp(PairRDDFunctions.scala:1109) в org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1$$anonfun$13$$anonfun$apply$6.apply(PairRDDFunctions.scala:1108) в org.apache.spark.rdd.PairRDDFunctions $$ anonfunt $ $ сохранить $$ anonfun $ apply $ 6.apply (PairRDDFunctions.scala: 1108) в org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1285)

0 ответов

Другие вопросы по тегам