【发布时间】:2020-04-30 14:30:15
【问题描述】:
我正在编写一个 pyspark 脚本,其中一项所需的转换是将微秒时间戳转换为秒时间戳 -
读取 parquet 文件作为输入
-
确定是否有任何列是“时间戳”。(以微秒为单位)
Example - 2019-03-30 19:56:14.520138 -
如果是,将其转换为 'yyyy-mm-dd hh:mm:ss' 格式
After conversion - 2019-03-30 19:56:14 将 parquet 格式的数据帧写回 s3。
我已经尝试过,但它不起作用。返回的数据帧仍然显示微秒。
df = spark.read.parquet(p_input_loc)
def customize_df(df):
getTimestampCol = list(
filter(lambda x: "timestamp" in x, df.dtypes))
print(getTimestampCol)
"""[('created_at', 'timestamp'), ('updated_at', 'timestamp')]"""
if getTimestampCol:
for row in getTimestampCol:
df = df.withColumn(row[0], f.to_timestamp(row[0], 'yyyy-mm-dd hh:mm:ss'))
return df
else:
return df
所以我需要帮助!!
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-dataframes