Ste*_*CSG 3 dataframe databricks azure-databricks
你会怎么做?数据块 4.1、Spark 2.3
您将获得一个两列数据框:1) ' dt
', 字符串,如图所示。2) ' tm
' 字符串,如图所示。我为这篇文章添加了第三列。
您的工作是创建第 3 列,“ dttm
”、时间戳、格式。前导零、精度和时区并不像 id 正确组合 ' dt
' & ' tm
' 重要。
我在这篇文章中使用了 PySpark,但我并没有与之结婚。
df1 = sqlContext.createDataFrame(
[
('2018-06-02T00:00:00','12:30:00 AM', '06-02-2018 00:30:00.000+0000')
,('2018-11-15T00:00:00','03:00:00 AM', '11-15-2018 03:00:00.000+0000')
,('2018-06-02T00:00:00','10:30:00 AM', '06-02-2018 10:30:00.000+0000')
,('2018-06-02T00:00:00','12:30:00 PM', '06-02-2018 12:30:00.000+0000')
,('2018-11-15T00:00:00','03:00:00 PM', '11-15-2018 15:00:00.000+0000')
,('2018-06-02T00:00:00','10:30:00 PM', '06-02-2018 22:30:00.000+0000')
]
,['dt', 'tm', 'desiredCalculatedResult']
)
Run Code Online (Sandbox Code Playgroud)
我已经经历了几十个、几十个、几十个例子和尝试,到目前为止我没有找到最终可行的解决方案。
您可以在“T”处拆分日期字符串以仅提取日期部分,然后您可以将其与时间字符串组合以获取表示您要创建的实际时间戳的字符串。然后只需将其转换为正确的格式即可。
from pyspark.sql.functions import concat, split, lit, from_unixtime, unix_timestamp
dt_tm = concat(split(df1.dt, "T")[0], lit(" "), df1.tm)
df1 = df1.withColumn("dttm", from_unixtime(unix_timestamp(dt_tm, 'yyyy-MM-dd hh:mm:ss a')).cast("timestamp"))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2231 次 |
最近记录: |