デイライト節約時間文字列をタイムスタンプに変換すると、間違った結果が得られます

User12345

pysparkデータフレームがあります。このデータフレームにtest_timeは、stringデータ型の列があります。

>>> df
DataFrame[test_time: string]

df.show()

+-------------------+
|          test_time|
+-------------------+
|2017-03-12 02:41:06|
|2017-03-12 02:43:52|
|2017-03-12 02:56:32|
|2017-03-12 03:16:23|
|2017-03-12 03:17:15|
|2017-03-12 03:22:19|
|2017-03-12 03:52:19|
|2017-03-12 04:03:21|
+-------------------+

このtest_time列をからstring変換したいtimestamp

私は以下のようにしました

from pyspark.sql import functions as F
df1 = df.withColumn('convert_test', F.unix_timestamp('test_time', "yyyy-MM-dd hh:mm:ss").cast('timestamp'))

>>> df1
DataFrame[test_time: string, convert_test: timestamp]

df1.show()

+-------------------+--------------------+
|          test_time|        convert_test|
+-------------------+--------------------+
|2017-03-12 02:41:06|2017-03-12 03:41:...|
|2017-03-12 02:43:52|2017-03-12 03:43:...|
|2017-03-12 02:56:32|2017-03-12 03:56:...|
|2017-03-12 03:16:23|2017-03-12 03:16:...|
|2017-03-12 03:17:15|2017-03-12 03:17:...|
|2017-03-12 03:22:19|2017-03-12 03:22:...|
|2017-03-12 03:52:19|2017-03-12 03:52:...|
|2017-03-12 04:03:21|2017-03-12 04:03:...|
+-------------------+--------------------+

ご覧のHoursとおり、行は異なります1-3

FYI私のタイムゾーンはでPSTあり、行1-3day light savings時間中のタイミングです。

正しい変換を行うにはどうすればよいですか。

私は正しい出力を得ています unix_timestamp()

  val dataframe = Seq(
    ("2017-03-12 02:41:06"),
    ("2017-03-12 02:43:52"),
    ("2017-03-12 02:56:32"),
    ("2017-03-12 03:16:23"),
    ("2017-03-12 03:17:15"),
    ("2017-03-12 03:22:19"),
    ("2017-03-12 03:52:19"),
    ("2017-03-12 04:03:21")
  ).toDF("test_time")

 dataframe.withColumn("convert_test", unix_timestamp($"test_time", "yyyy-MM-dd hh:mm:ss").cast("timestamp")).show()

出力:

+-------------------+--------------------+
|          test_time|        convert_test|
+-------------------+--------------------+
|2017-03-12 02:41:06|2017-03-12 02:41:...|
|2017-03-12 02:43:52|2017-03-12 02:43:...|
|2017-03-12 02:56:32|2017-03-12 02:56:...|
|2017-03-12 03:16:23|2017-03-12 03:16:...|
|2017-03-12 03:17:15|2017-03-12 03:17:...|
|2017-03-12 03:22:19|2017-03-12 03:22:...|
|2017-03-12 03:52:19|2017-03-12 03:52:...|
|2017-03-12 04:03:21|2017-03-12 04:03:...|
+-------------------+--------------------+

あなたはのような機能を使用することができるとは異なるタイムゾーンにしている場合from_utc_timestamp()to_utc_timestamp()、タイムスタンプを変換します。

これがお役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのDateTimeインスタンスを比較すると、間違った結果が得られます

分類Dev

文字列をDateTimeに変換すると、間違った結果が得られます

分類Dev

タイムスタンプを時刻に変換すると間違った時刻になります

分類Dev

PySpark:タイムスタンプとして文字列をキャストすると間違った時間が与えられる

分類Dev

PHPの夏時間が間違ったタイムゾーンを節約する

分類Dev

存在するタイムスタンプ列データを現地時間からUTCに変換します

分類Dev

マージ関数でインデックス変数をゼロに変更し、k = 0にすると、マージソートで間違った結果が得られます

分類Dev

サイプレス、「Cypress.Commands.add」を使用して新しいコマンドを定義すると、間違った結果が得られました

分類Dev

タイムゾーンで文字列を変換するときに間違った日付を取得する

分類Dev

UTCタイムスタンプから変換するときに、間違った日付/時刻を取得し続けるのはなぜですか?

分類Dev

UTC時間文字列をUNIXタイムスタンプに変換します

分類Dev

文字列を比較すると間違った結果が得られる

分類Dev

時間文字列をタイムスタンプに変換する方法

分類Dev

jqueryを使用してボタンの高さを特定すると、間違った結果が得られます

分類Dev

daskデータフレームからデータフレームへの変換が遅すぎるため、並列プロセスを使用するときに時間を節約できません

分類Dev

デバイス時間形式が 24 時間の場合、NSString から NSDate に変換するときに間違った時間が取得される

分類Dev

12時間から24時間の変換では、間違った結果が得られます

分類Dev

XSLTでXMLを変換すると、間違った結果が得られます

分類Dev

時間文字列をscalaのタイムスタンプ/日付時間に変換する

分類Dev

バイト配列をintpythonに変換する間違った結果

分類Dev

リストとタプルでNumpy配列にインデックスを付けると、異なる結果が得られますか?

分類Dev

MySQLはタイムスタンプと時間文字列をDateTime形式に変換します

分類Dev

文字列を2回解析すると、間違った結果が得られます

分類Dev

文字列を2回解析すると、間違った結果が得られます

分類Dev

パンダのpyplotにおける間違ったx値は整数にインデックスを変換してデータフレーム。どのように私は、正しい値を得ることができますか?

分類Dev

Javaでバイト配列をBitSetに変換することで間違ったビット表現が得られるのはなぜですか

分類Dev

LESSミックスインを使用して変数を複数回設定しますが、間違った結果が得られます

分類Dev

c++ でファイルに書き出そうとすると間違った結果が得られる

分類Dev

インターネット接続をチェックすると間違った結果が返される

Related 関連記事

  1. 1

    2つのDateTimeインスタンスを比較すると、間違った結果が得られます

  2. 2

    文字列をDateTimeに変換すると、間違った結果が得られます

  3. 3

    タイムスタンプを時刻に変換すると間違った時刻になります

  4. 4

    PySpark:タイムスタンプとして文字列をキャストすると間違った時間が与えられる

  5. 5

    PHPの夏時間が間違ったタイムゾーンを節約する

  6. 6

    存在するタイムスタンプ列データを現地時間からUTCに変換します

  7. 7

    マージ関数でインデックス変数をゼロに変更し、k = 0にすると、マージソートで間違った結果が得られます

  8. 8

    サイプレス、「Cypress.Commands.add」を使用して新しいコマンドを定義すると、間違った結果が得られました

  9. 9

    タイムゾーンで文字列を変換するときに間違った日付を取得する

  10. 10

    UTCタイムスタンプから変換するときに、間違った日付/時刻を取得し続けるのはなぜですか?

  11. 11

    UTC時間文字列をUNIXタイムスタンプに変換します

  12. 12

    文字列を比較すると間違った結果が得られる

  13. 13

    時間文字列をタイムスタンプに変換する方法

  14. 14

    jqueryを使用してボタンの高さを特定すると、間違った結果が得られます

  15. 15

    daskデータフレームからデータフレームへの変換が遅すぎるため、並列プロセスを使用するときに時間を節約できません

  16. 16

    デバイス時間形式が 24 時間の場合、NSString から NSDate に変換するときに間違った時間が取得される

  17. 17

    12時間から24時間の変換では、間違った結果が得られます

  18. 18

    XSLTでXMLを変換すると、間違った結果が得られます

  19. 19

    時間文字列をscalaのタイムスタンプ/日付時間に変換する

  20. 20

    バイト配列をintpythonに変換する間違った結果

  21. 21

    リストとタプルでNumpy配列にインデックスを付けると、異なる結果が得られますか?

  22. 22

    MySQLはタイムスタンプと時間文字列をDateTime形式に変換します

  23. 23

    文字列を2回解析すると、間違った結果が得られます

  24. 24

    文字列を2回解析すると、間違った結果が得られます

  25. 25

    パンダのpyplotにおける間違ったx値は整数にインデックスを変換してデータフレーム。どのように私は、正しい値を得ることができますか?

  26. 26

    Javaでバイト配列をBitSetに変換することで間違ったビット表現が得られるのはなぜですか

  27. 27

    LESSミックスインを使用して変数を複数回設定しますが、間違った結果が得られます

  28. 28

    c++ でファイルに書き出そうとすると間違った結果が得られる

  29. 29

    インターネット接続をチェックすると間違った結果が返される

ホットタグ

アーカイブ