Spark:为什么StructType合并方法是私有的?

时间:2018-10-11 11:45:46

标签: scala apache-spark apache-spark-sql

spark.sql.types package中有一个merge方法:

private[sql] def merge(that: StructType): StructType

它是私有的特定原因吗?我想在我的项目中使用它,除了复制代码还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

我知道已经很晚了,但希望我的回答可以对其他人有所帮助

因此,我发现 StructType.merge() 未包含在spark版本> 2.x

但是,如果您将Spark与Java一起使用,但仍不支持,则仍然可以使用 StructType.merge()

通过Scala解决Spark:

val consolidatedSchema = test1Df.schema.++:(test2Df.schema).toSet
val uniqueConsolidatedSchemas = StructType(consolidatedSchema.toSeq)

使用Java闪烁:

StructType consolidatedSchema = test1Df.schema().merge(test2Df.schema());

如果需要,可以将Java和Scala与相同版本的Spark一起使用。