假設有一個DataFrame時間戳和一個偏移量分別列以毫秒為單位的時間戳和長格式。
如。
從datetime進口datetime df =火花。createDataFrame ([datetime(2021、1、1), 1500年),(datetime(2021、1、2), 1200年)],[“時間戳”、“offsetmillis”],)
現在我想將這些偏移量添加到datetime,所以我得到:
2021 - 01 - 01 - t00:00:01.500和2021 - 01 - 0 - t00:00:01.200
如果我把這些直接得到一個錯誤類型不匹配,有意義:
[DATATYPE_MISMATCH。BINARY_OP_DIFF_TYPES)不能解決”(時間戳+ offsetmillis)”數據類型不匹配:左右二元操作符的操作數有不兼容的類型(“時間戳”和“長整型數字”)
但是我不知道我怎樣才能最好的這個時間或時間間隔。
盡管@Lakshay高爾的解決方案,我們一直使用另一種方法,我們發現一個可讀點:
從pyspark。sql進口列、函數f def make_dt_interval_sec (col:列):返回f.expr (f”make_dt_interval (0, 0, 0, {col._jc.toString ()})”) df。withColumn (start_col f.col(“時間戳”)——make_dt_interval_sec (f.col (“offsetmillis”) / 1000),)
我不確定有兩種方法之間的性能差異。