相关疑难解决方法(0)

Pyspark toPandas() 越界纳秒时间戳错误

我正在尝试将 Spark DataFrame 转换为 Pandas。但是,它给出以下错误:

OutOfBoundsDatetime: Out of bounds nanosecond timestamp:

有解决办法吗?

如果我删除所有时间戳列,它会起作用,但我想将整个表放入 Pandas 中。

将 Spark DataFrame 引入 Pandas 时,我从未遇到过错误。

这是一个相当大的表,包含多个时间戳列。有些是YYYY-MM-DD,有些是YYYY-MM-DD 00:00:00类型列。

有多个列包含不存在的年份变量,数量未知。

下面是一个例子。

data = {
    "ID": ["AB", "CD", "DE", "EF"],
    "year": [2016, 2017, 2018, 2018],
    "time_var_1": [
        "3924-01-04 00:00:00",
        "4004-12-12 12:38:00",
        "2018-10-02 01:32:23",
        "2018-04-05 00:00:00",
    ],
}

df = pd.DataFrame(data)

sdf = spark.createDataFrame(df)

sdf = sdf.withColumn("time_var_1", spark_fns.to_timestamp(spark_fns.col("time_var_1")))

Run Code Online (Sandbox Code Playgroud)

我对 PySpark 不太熟悉,所以我不确定errors='coerce'将表从 Spark DataFrame 导入 Pandas 时是否有等效的方法。

pandas apache-spark apache-spark-sql pyspark

6
推荐指数
1
解决办法
4969
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

pandas ×1

pyspark ×1