我有一个数据框,我使用pyspark在AWS Glue中处理,我的df中的一条消息如下所示:
{
"version":"0.0.1",
"device_id":"df4c13ddddb1bb8fea9fe762",
"session_id":"721cf47cf8408b30bc57743717",
"session_start":1508450739332,
"source_id":"5",
"body":{
"message_id":"2e6d83c677a7b4f3683366d",
"message_type":1,
"message_time":1508450739332,
"url":"http://sample_url/"
},
"partition_0":"2017",
"partition_1":"10",
"partition_2":"19",
"partition_3":"22"
}
我试图将body.message_time(以毫秒为单位的纪元)转换为日期时间字段。我试过from_unixtime函数:
unnested_df.withColumn("messages_datetime", from_unixtime(unnested_df.body.message_time.divide(1000)).show()
给我这个错误:
TypeError: 'Column' object is not callable
我只是将该列传递给from_unixtime函数。知道如何解决这个问题吗?
由于
答案 0 :(得分:1)
您收到异常,因为Column
没有divide
方法。使用/
运算符:
unnested_df.withColumn("messages_datetime", from_unixtime(unnested_df.body.message_time / 1000)