首页 > 解决方案 > 将一个数据帧的 avro 模式复制到另一个 pyspark

问题描述

我有一个带有模式 A 的数据集 A,还有带有模式 B 的数据集 B。数据集 A 和 B 大多相似(具有相同的列,但只有少数数据类型不同),但差异很小。一个示例是数据集 A 具有日期值('2020-08-03' 表示为字符串数据类型),数据集 B 中的同一列表示为纪元数(长)。现在我必须合并这两个数据集。如果我必须合并,我必须在两个数据集中使用相同的数据类型。

你能建议我怎么做吗?这可能吗 ?

标签: pysparkspark-avro

解决方案


您必须使用 sql 函数来更改列类型。例如,您可以将字符串日期转换为 unix 时间戳:

df.withColumn("date", unix_timestamp("date", "yyyy-MM-dd"))

然后你可以使用union这两个数据框。


推荐阅读