Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-22395

Fix the behavior of timestamp values for Pandas to respect session timezone

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.3.0
    • 2.3.0
    • PySpark, SQL

    Description

      When converting Pandas DataFrame/Series from/to Spark DataFrame using toPandas() or pandas udfs, timestamp values behave to respect Python system timezone instead of session timezone.

      For example, let's say we use "America/Los_Angeles" as session timezone and have a timestamp value "1970-01-01 00:00:01" in the timezone. Btw, I'm in Japan so Python timezone would be "Asia/Tokyo".

      The timestamp value from current toPandas() will be the following:

      >>> spark.conf.set("spark.sql.session.timeZone", "America/Los_Angeles")
      >>> df = spark.createDataFrame([28801], "long").selectExpr("timestamp(value) as ts")
      >>> df.show()
      +-------------------+
      |                 ts|
      +-------------------+
      |1970-01-01 00:00:01|
      +-------------------+
      
      >>> df.toPandas()
                         ts
      0 1970-01-01 17:00:01
      

      As you can see, the value becomes "1970-01-01 17:00:01" because it respects Python timezone.

      As we discussed in https://github.com/apache/spark/pull/18664, we consider this behavior is a bug and the value should be "1970-01-01 00:00:01".

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ueshin Takuya Ueshin
            ueshin Takuya Ueshin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment