Как использовать SparkSQL для выбора строк в Spark DF на основе нескольких условий - PullRequest
0 голосов
/ 06 ноября 2019

Я относительно новичок в pyspark и у меня есть искровой фрейм данных со столбцом даты "Issue_Date". Столбец «Issue_Date» содержит несколько дат 1970-2060 (из-за ошибок). На основе искрового фрейма данных я создал временную таблицу и смог отфильтровать данные за 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()

1 Ответ

1 голос
/ 06 ноября 2019

Вы пытались использовать 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)")
...