时间戳的正确格式,用于过滤Cassandra的pyspark数据帧

时间:2020-03-05 06:11:34

标签: python apache-spark pyspark cassandra spark-cassandra-connector

我在Cassandra中将时间戳存储为YYYY-mm-dd HH:MM:SSZ,并且能够过滤数据以在cql shell中获得一定的时间范围,但是当我在pyspark上尝试相同的时间时我在过滤的数据框中没有任何值。

有人可以帮我在pyspark中找到正确的日期时间格式吗?

谢谢。

1 个答案:

答案 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)")