【问题标题】:Adding new column to dataframe with month extracted from date Spark使用从日期 Spark 中提取的月份向数据框添加新列
【发布时间】:2022-12-13 08:04:26
【问题描述】:

我正在尝试向 Spark 中的数据框添加一个新列。我有一个干净的数据集 (dfClean),其中有一个名为“Fecha ingreso”的列,其中有一个日期,我想从该列中提取月份并添加一个只有月份的新列。 我试过了

from pyspark.sql.functions import month

dfCleanMonth = dfClean.withColumn('Month',month('Fecha ingreso'))
dfCleanMonth.display()

但它没有添加任何列,即使它没有给出任何错误。有人知道我该如何解决吗?我在网上看过,但似乎找不到错误。 谢谢!

【问题讨论】:

  • 您可以显示来自 dfClean 的架构或示例数据吗?

标签: apache-spark pyspark


【解决方案1】:

首先,确保您的列Fecha ingreso 的类型为date 而不是string

然后,month 被定义为month(Column e),这意味着您的代码根本无法编译,因为它应该被称为month(col("Fecha ingreso"))

下面是一个工作版本的例子:

var dataset =
  spark.sparkContext.parallelize(Seq("01-01-2021")).toDF("date")

dataset = dataset
  .withColumn("Fecha ingreso", to_date(col("date"), "dd-MM-yyyy"))
  .withColumn("month", month(col("Fecha ingreso")))

输出:

+----------+-------------+-----+
|date      |Fecha ingreso|month|
+----------+-------------+-----+
|01-01-2021|2021-01-01   |1    |
+----------+-------------+-----+

祝你好运!

【讨论】:

    猜你喜欢
    • 2019-05-06
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多