【问题标题】:pyspark schema validation for csvcsv 的 pyspark 模式验证
【发布时间】:2020-10-12 12:33:51
【问题描述】:

我在 pyspark 数据帧 df1 中有原始数据(从 csv 文件读取)。当我尝试附加另一个 csv (将在另一个 pyspark 数据帧 df2 中读取)时,在我“联合”两个数据帧之前,是否有一种优雅的方式来检查或验证两者的模式?谢谢。

【问题讨论】:

  • 两个数据框具有相同的架构?你已经知道架构了吗?
  • 我知道 df1 的架构。在我“联合”两个数据框之前,我想检查 df2 的架构是否与 df1 相同。或者我想说我的 csv csv 标头是不同的(即)df2。基本上我想在合并之前检查 df1 和 df2 的标题名称是否相同。谢谢。
  • 只是标题? assert df1.columns == df2.columns。但是如果你想通过名字联合,你有一个直接的方法:df1.unionByName(df2)

标签: dataframe pyspark union


【解决方案1】:

您在寻找什么样的验证?

  1. 匹配列名 如果您只想知道是否存在相同的列,您可以使用

    df1.select(df2.columns)

  2. 我认为,如果您尝试进行联合,请务必检查数据类型以及该列是否可以为空,以便您可以使用:

    df1.schema==df2.schema

您可以根据您的用例将它们设置为 assert 或 if 条件。

【讨论】:

    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多