小编Dom*_*den的帖子

如何修复镶木地板文件的python熊猫中的时间戳解释

我有一些带有时间戳的 spark(scala) 数据帧/表,它们来自我们的 DHW,有时会使用一些高水印。

我想在 python 中使用 Pandas 处理这些数据,所以我将它们写为 spark 中的镶木地板文件,然后用 Pandas 再次读取。问题是 pandas/pyarrow 无法处理时间戳。这些转换为dateTime64[ns],女巫可以容纳的日期范围有限。所以一些时间戳(尤其是所有高水位标记)会得到错误的条目。

我如何强制熊猫将时间戳解释dateTime[mu]为例如。或者将高(和低)水印设置为 NAN 而不是仅使用错误的转换值?

这是一个最小的代码示例

火花:

import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._


val df_spark = Seq(
  (1, "1050-01-01 23:00:01"), 
  (2, "2014-11-30 12:40:32"), 
  (3, "2016-12-29 09:54:00"), 
  (4, "2500-01-01 00:00:00")).toDF("id", "date-string")
  .withColumn("valid_to", to_timestamp(col("date-string")))

df_spark.repartition(1).write.parquet("timestamptest")
df_spark.show
+---+-------------------+-------------------+
| id|        date-string|           valid_to|
+---+-------------------+-------------------+
|  1|1050-01-01 23:00:01|1050-01-01 23:00:01|
|  2|2014-11-30 12:40:32|2014-11-30 12:40:32|
|  3|2016-12-29 09:54:00|2016-12-29 09:54:00|
|  4|2500-01-01 00:00:00|2500-01-01 00:00:00|
+---+-------------------+-------------------+

Run Code Online (Sandbox Code Playgroud)

在 Python 中读取: …

python timestamp pandas parquet pyarrow

5
推荐指数
0
解决办法
754
查看次数

标签 统计

pandas ×1

parquet ×1

pyarrow ×1

python ×1

timestamp ×1