【问题标题】:Converting between datetime64 and datetime in pyspark在 pyspark 中的 datetime64 和 datetime 之间转换
【发布时间】:2020-06-05 11:28:18
【问题描述】:

我正在尝试将我的 spark 数据框中的日期列从 date 转换为 np.datetime64 ,我该如何实现?

# this snippet convert string to date format

    df1 = df.withColumn("data_date",to_date(col("data_date"),"yyyy-MM-dd"))

【问题讨论】:

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


    【解决方案1】:

    正如您在 spark https://spark.apache.org/docs/latest/sql-reference.html 的文档中看到的那样,time 变量支持的唯一类型是 TimestampTypeDateType。 Spark 不知道如何处理 np.datetime64 类型(想想 spark 对 numpy 有什么了解?-什么都没有)。

    您已经将字符串转换为 spark 知道的日期格式。我的建议是,从那里你应该以date 的身份使用它,这就是 spark 的理解方式,不用担心有大量的内置函数来处理这种类型。你可以在 numpy 中使用 np.datetime64 做的任何事情都可以在 spark 中使用。更多细节请看这篇文章:https://mungingdata.com/apache-spark/dates-times/

    【讨论】:

      【解决方案2】:

      你为什么要这样做。 spark 不支持数据类型 datetime64 并且提供创建用户定义的数据类型不再可用。可能您可以创建一个 pandas Df 然后进行此转换。 Spark 不支持它

      【讨论】:

        猜你喜欢
        • 2012-11-22
        • 2017-06-25
        • 2020-11-05
        • 2014-05-14
        相关资源
        最近更新 更多