繁体   English   中英

如何 select pyspark dataframe 中的日期范围

[英]How to select a date range in pyspark dataframe

我想要 select 我的 dataframe 的一部分,日期包含 2022 年到最新日期,可能包括(今天、明天和下一个)。 我怎样才能做到这一点?

df= df.filter(col("sales_date").contains("2022"))

您可以在 function 甚至 '>' 之间使用

df= df.filter(col("date").between("2022-01-01", "2022-12-31"))

或者

df= df.filter(col("date") > "2022-01-01")

如前所述,'between' 语法可以解决问题,只需确保您的列以正确的格式转换: https://sparkbyexamples.com/spark/spark-convert-string-to-timestamp-format/

您可以在过滤器中使用like ,其中%用作通配符字符。

scala> var df = Seq(("2022-01-01"),("2021-02-01")).toDF
df: org.apache.spark.sql.DataFrame = [value: string]

scala> df = df.withColumn("date",col("value").cast("date"))
df: org.apache.spark.sql.DataFrame = [value: string, date: date]

scala> df.printSchema
root
|-- value: string (nullable = true)
|-- date: date (nullable = true)

scala> df.show()
+----------+----------+
|     value|      date|
+----------+----------+
|2022-01-01|2022-01-01|
|2021-02-01|2021-02-01|
+----------+----------+


scala> df.filter(col("date").like("2022%")).show()
+----------+----------+
|     value|      date|
+----------+----------+
|2022-01-01|2022-01-01|
+----------+----------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM