u“union只能在具有兼容列类型的表上执行。Map<string,int><>structint:int,long:null at 第二个表的第n列。
以下是架构的外观:
数据集1
root
|-- name: string (nullable = true)
|-- count: struct (nullable = true)
| |-- int: integer (nullable = true)
| |-- long: null (nullable = true)
数据集2
root
|-- name: string (nullable = true)
|-- count: map (nullable = true)
| |-- key: string
| |-- value: integer (valueContainsNull = true)
使用以下命令时,无法对df执行并集操作:
data= dataset1_df.union(dataset2_df)
如何解决这个问题?
更新:我想更改架构,例如:
数据集1
root
|-- name: string (nullable = true)
|-- count: long
数据集2
root
|-- name: string (nullable = true)
|-- count: long
1条答案
按热度按时间ewm0tg9j1#
简单的解决方案是将其中一个Dataframe进行类型转换以匹配另一个Dataframe,如下所示-