我正在尝试运行一些测试。即
assertDataFrameEquals(etalon, agg)
在2个数据帧上但是得到以下错误
ScalaTestFailureLocation
Expected StructField(value1,ArrayType(StringType,true),false)
Actual StructField(value2,ArrayType(StringType,true),true)
从列表创建一个df
val etalon= spark.sparkContext.parallelize(data).toDF()
另一个是从某些输入文件中计算得出的。
如果value2是String或其他某种类型,我可以做
etalon.na.fill()
在上面。但这不适用于数组。我还可以做些什么?
最佳答案
尝试下面的代码片段,此处将agg数据框的架构应用于标准具数据框,以便其架构一致。
var etalon = spark.sparkContext.parallelize(data).toDF()
val newSchema = agg.schema
etalon = spark.createDataFrame(etalon.rdd, newSchema)
assertDataFrameEquals(etalon, agg)