【问题标题】:How do I convert the value of a pyspark dataframe column?如何转换 pyspark 数据框列的值?
【发布时间】:2021-08-09 19:39:45
【问题描述】:

我在 pyspark 数据框中有一列表示电子设备的使用年限,这些值以毫秒为单位。有没有一种简单的方法可以将该列的值转换为年份?我对 Spark 不太熟悉。

编辑:我知道您可以通过基本数学轻松地将毫秒转换为年,我正在尝试获取 pyspark 数据框的一列并对其进行迭代并将所有列值转换为不同的值。是否有一个特定的 pyspark 函数可以使这更容易或没有?我有一列,其中所有值都是非常大的整数,时间以毫秒为单位,我试图根据设备的使用寿命过滤掉太小或太大而无法理解的值。

table.filter(F.col("age")>0).filter(F.col("age")<yearsToSeconds(20))

yearToSeconds 是一个非常基本的函数,可以将年份转换为秒。我更希望能够将列值转换为年,但我之前没有使用过 spark,我不知道这样做的最佳方法。

【问题讨论】:

  • 只除以适当的因子?
  • 请提供示例数据和所需的输出,但是如果您有一个以毫秒为单位的数字,并且您想将其转换为年份,正如 mck 所说,您必须将该数字除以得到等效年份

标签: python sql apache-spark pyspark data-science


【解决方案1】:

嗯,一种方法是使用withColumn

这里我演示了向数据框中添加一个名为“ageinMin”的新列,并根据数据框中的“年龄”列计算它,然后将其除以 600 以获得等效分钟数:

df.withColumn("ageinMin",col("age") /600)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多