arrays - ScalaTestFailureLocation 预期的 StructField(value1,ArrayType(StringType,true),false) 实际的 StructField(val2,ArrayType(StringType,true),true)

标签 arrays scala apache-spark testing null

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

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 是字符串或其他类似类型,我可以这样做

etalon.na.fill()

就可以了。但这不适用于数组。我还能做什么?

最佳答案

尝试下面的代码片段,这里将 agg 数据帧的架构应用于 etalon 数据帧,以便它们的架构保持一致。

var etalon = spark.sparkContext.parallelize(data).toDF()

val newSchema = agg.schema

etalon = spark.createDataFrame(etalon.rdd, newSchema)

assertDataFrameEquals(etalon, agg)

关于arrays - ScalaTestFailureLocation 预期的 StructField(value1,ArrayType(StringType,true),false) 实际的 StructField(val2,ArrayType(StringType,true),true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224291/

相关文章:

java - 为什么 Kafka 消费者忽略了我在 auto.offset.reset 参数中的 "earliest"指令,因此没有从绝对第一个事件中读取我的主题?

java - Scala 和 Java 在同一个项目中

arrays - FORTRAN 数组计算错误

C语言复制数组-代码错误

PHP - 组合子数组并按值排序?

scala - 用于解析转义 CSV 行的 Parboiled2 语法

java - 如何在 Spark 2.4 中加载自定义变压器

java - 如何在apache spark java中使用hadoop office库将数据集写入excel文件

java - 向 Hadoop/Spark 添加自定义代码——压缩编解码器

PHP - 与 "Undefined offset"错误不一致