Spark数据框中值为'-'的日期列

0 投票
2 回答
49 浏览
提问于 2025-04-14 17:28

我在数据砖块里有一个日期列,其中有一条记录的值是'-'。我无法把它过滤掉,也无法选择到这一行。我该如何在条件语句中使用这个'-'的值呢?

我试过

spark_df_2023_fil=spark_df_2023.filter(spark_df_2023["navdt"] == '-')
spark_df_2023_fil=spark_df_2023.filter(spark_df_2023["navdt"] != '-')

但是这两种方法都没有找到任何记录。

2 个回答

0

你有没有检查过字符串前后有没有多余的空格?可以试试这个:

import pyspark.sql.functions as f

df = spark_df_2023.filter(f.trim(spark_df_2023["navdt"]) == '-')
0

看起来对我来说是有效的……我希望这正是你想要的?

from pyspark.sql.types import *
from pyspark.sql.functions import *
import datetime
schema = StructType([StructField("navdt", StringType(), True)])
l = [("2024-03-01",),('-',)]
spark_df_2023 = spark.createDataFrame(l, schema)
display(spark_df_2023)
df = spark_df_2023.filter(spark_df_2023.navdt != '-')
display(df)

在这里输入图片描述

撰写回答