Spark spark.sql.session.timeZone不适用于JSON源

时间:2018-11-11 17:44:48

标签: apache-spark apache-spark-sql apache-spark-2.3

从JSON文件读取时,Spark v2.3.1是否依赖于本地时区吗?

我的src/test/resources/data/tmp.json

[
  {
    "timestamp": "1970-01-01 00:00:00.000"
  }
]

和Spark代码:

SparkSession.builder()
    .appName("test")
    .master("local")
    .config("spark.sql.session.timeZone", "UTC")
    .getOrCreate()
    .read()
    .option("multiLine", true).option("mode", "PERMISSIVE")
    .schema(new StructType()
        .add(new StructField("timestamp", DataTypes.TimestampType, true, Metadata.empty())))
    .json("src/test/resources/data/tmp.json")
    .show();

结果:

+-------------------+
|          timestamp|
+-------------------+
|1969-12-31 22:00:00|
+-------------------+

如何使火花返回1970-01-01 00:00:00.000

PS 这个问题不是Spark Strutured Streaming automatically converts timestamp to local time的重复,因为提供的解决方案对我而言不起作用,并且已经包含在我的问题中(见.config("spark.sql.session.timeZone", "UTC"))。

0 个答案:

没有答案