我想将以下类中的一组数据写入到镶木地板文件中:
public class ClassA {
Identifier identifier;
Map<String, Object> info;
}
请记住,“标识符”实际上是一个接口。 我们有2个实现Identifier接口的类,即:
public class IdentifierA {
Integer id;
}
public class IdentifierB {
List<Long> ids;
}
注意:ClassA,IdentifierA和IdentifierB都有getter,setter和构造函数,为简单起见,我将它们省略了。
无论我使用什么标识符类,我都可以实例化数据集,而且还可以将数据写入文本文件。当我尝试将数据写入实木复合地板文件时出现以下错误,该问题就会出现:
Exception in thread "main" org.apache.spark.sql.AnalysisException:
Datasource does not support writing empty or nested empty schemas.
Please make sure the data schema has at least one or more column(s).
我还验证了数据的列和架构。他们在这里:
架构
StructType(StructField(identifier,StructType(),true),StructField(info,MapType(StringType,StructType(),true),true))
列 [标识符,信息]
我猜测错误的出现是由于我在ClassA中使用接口,还是因为Object类型用作ClassA中map参数的值。
你们对我如何解决此问题有任何想法吗?