注意-我已经在互联网上看过了,所有的解决方案都存在于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")
);
数据仍然以这种格式打印出来-
如何将其转换为日期-时间格式?
1条答案
按热度按时间elcex8rz1#
我得到了解决方案,Arrival_Time和Creation_Time需要以毫秒为单位,from_unixtime函数才能工作。我把它们转换成毫秒,它就像一个魅力:)