Правильный формат Timestamp для фильтрации фрейма данных Pyspark для Cassandra - PullRequest
1 голос
/ 05 марта 2020

Я храню метку времени как ГГГГ-мм-дд ЧЧ: ММ: ССЗ в Кассандре, и я могу отфильтровать данные, чтобы получить определенный интервал времени в оболочке cql, но когда я пробую то же самое на pyspark dataframe Я не получаю никаких значений в отфильтрованном dataframe.

Может кто-нибудь помочь мне найти правильный формат даты и времени в pyspark для этого?

Спасибо.

1 Ответ

0 голосов
/ 05 марта 2020

Этот формат для отметок времени работает просто отлично. Я думаю, что у вас есть проблема с типами Spark SQL, поэтому вам может потребоваться выполнить явное приведение для строки метки времени, чтобы Spark мог выполнить правильное сравнение.

Например, этот код Scala работает правильно ( вам может потребоваться настроить его на Python):

import org.apache.spark.sql.cassandra._
val data = spark.read.cassandraFormat("sdtest", "test").load()

val filtered = data.filter("ts >= cast('2019-07-17 14:41:34.373Z' as timestamp) AND ts <= cast('2019-07-19 19:01:56Z' as timestamp)")
...