【问题标题】:How to Convert a String Column to Decimal Column using Pyspark如何使用 Pyspark 将字符串列转换为十进制列
【发布时间】:2021-10-21 14:54:40
【问题描述】:

我有一个带有字符串列的数据框,我需要将其转换为十进制。以下是数据示例:

我尝试了以下方法:

df_line_items = df_line_items.withColumn("product_sold_price", df_line_items.product_sold_price.cast("decimal(3,2)"))

,但它只是使所有值都为空。感谢任何想法。谢谢

【问题讨论】:

    标签: python dataframe pyspark databricks


    【解决方案1】:

    不要使用小数,而是尝试使用 Double - 这应该可以解决您的所有问题。

    df_line_items = df_line_items.withColumn("product_sold_price", df_line_items.product_sold_price.cast("double"))

    【讨论】:

    • 谢谢。除了我需要将架构显示为十进制表之外,这很有效。谢谢。我同意您的解决方案有效。
    【解决方案2】:

    这是因为当您的数据超出该范围时,decimal(3,2) 只能允许 3 位精度和小数点后 2 位数字(范围 -9.99 到 9.99)。从上图中,至少你需要将它们转换为decimal(5,2)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-13
      • 2013-02-07
      • 2013-12-16
      • 2011-08-25
      • 2014-04-28
      • 2021-05-19
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多