最佳
现在我正在试验pyspark 2.3.2。
我想根据某个列(groupby)移动一个列。在
输入:
id timestamp logintype start_sessie timestamp_prev
0 3 2016-02-09 09:36:57.217 INTERN True None
1 3 2016-02-09 09:51:40.899 INTERN False None
2 3 2016-02-10 10:11:22.131 INTERN True None
3 3 2016-02-10 10:17:16.345 INTERN False None
4 4 2017-08-10 10:18:12.412 INTERN True None
5 4 2017-08-10 10:21:11.788 INTERN False None
6 4 2017-08-11 14:17:33.119 INTERN True None
7 4 2017-08-11 14:11:51.173 INTERN False None
8 4 2017-08-16 11:43:16.609 INTERN True None
9 4 2017-08-16 11:13:35.421 INTERN False None
幸运的是,自从pyspark 2.3.x版以来,我们就可以使用熊猫了。 所以我脑子里就有了这段代码
我的代码:
^{pr2}$预期结果如下:
预期结果:
id timestamp logintype start_sessie timestamp_prev
0 3 2016-02-09 09:36:57.217 INTERN True None
1 3 2016-02-09 09:51:40.899 INTERN False 2016-02-09 09:36:57.217
2 3 2016-02-10 10:11:22.131 INTERN True 2016-02-09 09:51:40.899
3 3 2016-02-10 10:17:16.345 INTERN False 2016-02-10 10:11:22.131
4 4 2017-08-10 10:18:12.412 INTERN True None
5 4 2017-08-10 10:21:11.788 INTERN False 2017-08-10 10:18:12.412
6 4 2017-08-11 14:17:33.119 INTERN True 2017-08-10 10:21:11.788
7 4 2017-08-11 14:11:51.173 INTERN False 2017-08-11 14:17:33.119
8 4 2017-08-16 11:43:16.609 INTERN True 2017-08-11 14:11:51.173
9 4 2017-08-16 11:13:35.421 INTERN False 2017-08-16 11:43:16.609
但不幸的是,我总是收到一个错误。pyarrow.lib.ArrowInvalid: Error converting from Python objects to Int64: Got Python object of type Timestamp but can only handle these types: integer
我不知道怎么处理。
首先我想,这是因为移位函数产生的NaT。但我不确定(在用一个None值替换NaT之后,我仍然有相同类型的错误)
有人对此有更多的经验吗?(你能解决这种类型的错误吗)
谨致问候
--添加额外的:架构--
StructType(List(StructField(id,IntegerType,true),
StructField(timestamp,TimestampType,true),
StructField(logintype,StringType,true),
StructField(start_sessie,BooleanType,true),
StructField(timestamp_prev,TimestampType,true)))
目前没有回答
相关问题 更多 >
编程相关推荐