Spark 结构流式处理自动将时间戳转换为本地时间
我的时间戳采用UTC和ISO8601,但使用结构化流,它会自动转换为本地时间。有没有办法阻止这种转换?我想用 UTC 格式使用它。
我正在从Kafka读取json数据,然后使用Spark函数解析它们。from_json
输入:
{"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:我试图尝试使用Spark函数,但没有运气。from_utc_timestamp