我在Cassandra中将时间戳存储为YYYY-mm-dd HH:MM:SSZ,并且能够过滤数据以在cql shell中获得一定的时间范围,但是当我在pyspark上尝试相同的时间时我在过滤的数据框中没有任何值。
有人可以帮我在pyspark中找到正确的日期时间格式吗?
谢谢。
答案 0 :(得分:0)
这种时间戳格式可以正常工作。我认为您的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)")