【问题标题】:In Spark I am not able to filter by existing column在 Spark 中,我无法按现有列进行过滤
【发布时间】:2019-09-30 10:24:46
【问题描述】:

我正在尝试使用 spark 按数据框中的一列进行过滤。但是 spark 抛出错误,

Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot resolve 'Inv. Pty' given input columns: [Pstng Date, Name 1, Inv. Pty, Year]

invDF.filter(col("Inv. Pty") === "2001075").show()

【问题讨论】:

  • 您能否使用 printSchema 打印数据框的架构并用它更新问题!

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


【解决方案1】:

倒着试试这个`

invDF.filter(col("`Inv. Pty`") === "2001075").show()

【讨论】:

    【解决方案2】:

    问题是 Spark 假定带有“点”的列作为结构列。 为了解决这个问题,您需要使用反引号“`”。这应该有效:

    invDF.filter(col("`Inv. Pty`") === "2001075").show()
    

    【讨论】:

      【解决方案3】:

      不确定,但给定输入列:[Pstng Date, Name 1, Inv. Pty, Year] 列有一个额外的空间 Inv。 Pty,可能是这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-18
        • 1970-01-01
        • 2021-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多