json from_unixtime函数在spark-sql中没有给出正确的输出

ffscu2ro  于 2023-06-25  发布在  Unix
关注(0)|答案(1)|浏览(109)

注意-我已经在互联网上看过了,所有的解决方案都存在于Python或Scala中,而不是Java中。
我正在从JSON文件中阅读数据。在文件中,时间以unixtime格式给出。我正在将其转换为日期-时间格式。
JSON文件数据看起来像这样-

"""[{"Arrival_Time":1424686735175,"Creation_Time":1424686733176178965,"Device":"nexus4_1","Index":35,"Model":"nexus4","User":"g","gt":"stand","x":0.0014038086,"y":5.0354E-4,"z":-0.0124053955}
{....}
{....}
]"""

我的密码是-

StructType activitySchema = new StructType().add("Arrival_Time", "BIGINT")
                .add("Creation_Time", "BIGINT")
                .add("Device","string")
                .add("Index", "string")
                .add("Model","string")
                .add("User", "string")
                .add("gt","string")
                .add("x", "DOUBLE")
                .add("y","DOUBLE")
                .add("z","DOUBLE");

        Dataset<Row> jsondf = spark
                .readStream()
                .schema(activitySchema)
                .json("file:///Users/anuragharsh/Desktop/Data/Activity_Data/")
                .select(
                        from_unixtime(col("Arrival_Time"),"MM-dd-yyyy HH:mm:ss").as("timestamp_1"),
                        from_unixtime(col("Creation_Time"),"MM-dd-yyyy HH:mm:ss").as("timestamp_2")
                );

数据仍然以这种格式打印出来-

如何将其转换为日期-时间格式?

elcex8rz

elcex8rz1#

我得到了解决方案,Arrival_Time和Creation_Time需要以毫秒为单位,from_unixtime函数才能工作。我把它们转换成毫秒,它就像一个魅力:)

相关问题