我想选择一部分日期包含2022年到最近日期的 Dataframe ,其中可能包括(今天、明天和下一天)。如何实现?df= df.filter(col("sales_date").contains("2022"))
df= df.filter(col("sales_date").contains("2022"))
htzpubme1#
您可以在函数之间使用,甚至可以使用“〉”
df= df.filter(col("date").between("2022-01-01", "2022-12-31"))
或
df= df.filter(col("date") > "2022-01-01")
7gcisfzg2#
如前所述,'between'语法就能解决这个问题,只要确保你的列被转换成正确的格式:https://sparkbyexamples.com/spark/spark-convert-string-to-timestamp-format/
k0pti3hp3#
您可以在筛选器中使用**,如在%中用作通配符的**。
%
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| +----------+----------+
3条答案
按热度按时间htzpubme1#
您可以在函数之间使用,甚至可以使用“〉”
或
7gcisfzg2#
如前所述,'between'语法就能解决这个问题,只要确保你的列被转换成正确的格式:https://sparkbyexamples.com/spark/spark-convert-string-to-timestamp-format/
k0pti3hp3#
您可以在筛选器中使用**,如在
%
中用作通配符的**。