如何使用SparkSQL根据多个条件在Spark DF中select行
How to use SparkSQL to select rows in Spark DF based on multiple conditions
我对 pyspark 比较陌生,我有一个带有日期列的 spark 数据框 "Issue_Date"。 "Issue_Date" 列包含从 1970 年到 2060 年的几个日期(由于错误)。从 spark 数据框,我从中创建了一个临时 table,并且能够过滤 2018 年的数据。我还想包括 2019 年的数据(即多个条件)。有办法吗?我尝试了很多组合,但无法得到它。感谢任何形式的帮助,谢谢。
# Filter data from 2018
sparkdf3.createOrReplaceTempView("table_view")
sparkdf4 = spark.sql("select * from table_view where year(to_date(cast(unix_timestamp(Issue_Date,'MM/dd/yyyy') as timestamp))) = 2018")
sparkdf4.count()
您尝试使用 year(Issue_Date) >= 2018
了吗?:
sparkdf4 = spark.sql("select * from table_view where year(to_date(cast(unix_timestamp(Issue_Date,'MM/dd/yyyy') as timestamp))) >= 2018")
如果您的列有错误,并且您想指定一个范围,您可以使用 year IN (2018, 2019)
:
sparkdf4 = spark.sql("select * from table_view where year(to_date(cast(unix_timestamp(Issue_Date,'MM/dd/yyyy') as timestamp))) in (2018, 2019)")
我对 pyspark 比较陌生,我有一个带有日期列的 spark 数据框 "Issue_Date"。 "Issue_Date" 列包含从 1970 年到 2060 年的几个日期(由于错误)。从 spark 数据框,我从中创建了一个临时 table,并且能够过滤 2018 年的数据。我还想包括 2019 年的数据(即多个条件)。有办法吗?我尝试了很多组合,但无法得到它。感谢任何形式的帮助,谢谢。
# Filter data from 2018
sparkdf3.createOrReplaceTempView("table_view")
sparkdf4 = spark.sql("select * from table_view where year(to_date(cast(unix_timestamp(Issue_Date,'MM/dd/yyyy') as timestamp))) = 2018")
sparkdf4.count()
您尝试使用 year(Issue_Date) >= 2018
了吗?:
sparkdf4 = spark.sql("select * from table_view where year(to_date(cast(unix_timestamp(Issue_Date,'MM/dd/yyyy') as timestamp))) >= 2018")
如果您的列有错误,并且您想指定一个范围,您可以使用 year IN (2018, 2019)
:
sparkdf4 = spark.sql("select * from table_view where year(to_date(cast(unix_timestamp(Issue_Date,'MM/dd/yyyy') as timestamp))) in (2018, 2019)")