Datetime SPARK SQL和Cassandra之间的时区不匹配
我试图将数据从Cassandra加载到Spark DataFrame,但时间戳列值正在转换为UTC时区,而不是EDT 我正在寻找一个解决方案,在这两种情况下,时区都应该是EDT 例如: Cassandra时间戳:-2017年8月16日00:00:00(美国东部夏令时时区) 查询spark sql dataframe/tempview后获得的时间戳:-15-08-2017 20:00:00(4小时变化,时区为UTC) 我在谷歌上搜索了很多,发现转换将基于本地时间戳进行,但即使在更改本地时间戳之后,我仍然看到在SPARK SQL中时区正在被修改 供参考: 卡桑德拉时区:美国东部时间Datetime SPARK SQL和Cassandra之间的时区不匹配,datetime,cassandra,apache-spark-sql,spark-dataframe,Datetime,Cassandra,Apache Spark Sql,Spark Dataframe,我试图将数据从Cassandra加载到Spark DataFrame,但时间戳列值正在转换为UTC时区,而不是EDT 我正在寻找一个解决方案,在这两种情况下,时区都应该是EDT 例如: Cassandra时间戳:-2017年8月16日00:00:00(美国东部夏令时时区) 查询spark sql dataframe/tempview后获得的时间戳:-15-08-2017 20:00:00(4小时变化,时区为UTC) 我在谷歌上搜索了很多,发现转换将基于本地时间戳进行,但即使在更改本地时间戳之后,
运行spark作业的本地时区:EDT默认情况下,Cassandra使用UTC时区,但cqlshrc中指定的时区仅在将其显示到控制台时进行更改/类型转换 就我的情况而言,我已经将本地时区从EDT修改为UTC,以完成任务,但按照规定,它也可以按要求的时间进行分级
感谢@Uttam Kasundara触发了完美点。Cassandra使用UTC时间存储在时间戳列中。如果在输出中需要特定的时区实例,则必须将UTC转换为所需的时区。有一种方法可以使用dataframe的生成列来完成。