java – Spark Strutured Streaming自动将时间戳转换为本地时间
发布时间:2020-05-25 15:16:24 所属栏目:Java 来源:互联网
导读:我有UTC和ISO8601的时间戳,但使用结构化流,它会自动转换为本地时间.有没有办法阻止这种转换?我想在UTC中使用它. 我正在从Kafka读取json数据,然后使用from_json Spark函数解析它们. 输入: {Timestamp:2015-01-01T00:00:06.222Z} 流: SparkSession .builder(
|
我有UTC和ISO8601的时间戳,但使用结构化流,它会自动转换为本地时间.有没有办法阻止这种转换?我想在UTC中使用它. 我正在从Kafka读取json数据,然后使用from_json Spark函数解析它们. 输入: {"Timestamp":"2015-01-01T00:00:06.222Z"}
流: SparkSession
.builder()
.master("local[*]")
.appName("my-app")
.getOrCreate()
.readStream()
.format("kafka")
... //some magic
.writeStream()
.format("console")
.start()
.awaitTermination();
架构: StructType schema = DataTypes.createStructType(new StructField[] {
DataTypes.createStructField("Timestamp",DataTypes.TimestampType,true),});
输出: +--------------------+ | Timestamp| +--------------------+ |2015-01-01 01:00:...| |2015-01-01 01:00:...| +--------------------+ 如您所见,小时数自动增加. PS:我试着尝试使用from_utc_timestamp Spark函数,但没有运气. 解决方法对我来说它起作用了:spark.conf.set("spark.sql.session.timeZone","UTC")
它告诉spark SQL使用UTC作为时间戳的默认时区.我在spark SQL中使用它,例如: select *,cast('2017-01-01 10:10:10' as timestamp) from someTable
我知道它在2.0.1中不起作用.但适用于Spark 2.2.我在SQLTransformer中也使用过它. 我不确定流媒体. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
