Leo*_*kea 6 apache-spark apache-spark-sql pyspark
我使用 Spark 2.1 和 python 2.7.12。
假设如下:
from pyspark.sql.functions import *
import timestamp
data = [Row(time=datetime.datetime(2017, 1, 1, 0, 0, 0, 0)), Row (time=datetime.datetime(1980, 1, 1, 0, 0, 0, 0)), Row(time=None) ]
df = spark.createDataFrame(data)
Run Code Online (Sandbox Code Playgroud)
如何使用特定时间df.fillna({'time': datetime.datetime(1980, 1, 1, 0, 0, 0, 0)}) 填充null值/秒?
您可以尝试coalesce:
from pyspark.sql.functions import *
default_time = datetime.datetime(1980, 1, 1, 0, 0, 0, 0)
result = df.withColumn('time', coalesce(col('time'), lit(default_time)))
Run Code Online (Sandbox Code Playgroud)
或者,如果要保留 with fillna,则需要以标准格式将默认值作为字符串传递:
from pyspark.sql.functions import *
default_time = '1980-01-01 00:00:00'
result = df.fillna({'time': default_time})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3069 次 |
| 最近记录: |