我正在尝试运行一些测试。即

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)

08-07 07:08