当前位置:  开发笔记 > 编程语言 > 正文

如何使用Java将unix epoch的列转换为Apache spark DataFrame中的Date?

如何解决《如何使用Java将unixepoch的列转换为ApachesparkDataFrame中的Date?》经验,为你挑选了1个好方法。

我有一个json数据文件,其中包含一个属性[creationDate],它是"long"数字类型的unix epoc.Apache Spark DataFrame架构如下所示:

root 
 |-- creationDate: long (nullable = true) 
 |-- id: long (nullable = true) 
 |-- postTypeId: long (nullable = true)
 |-- tags: array (nullable = true)
 |    |-- element: string (containsNull = true)
 |-- title: string (nullable = true)
 |-- viewCount: long (nullable = true)

我想做一些groupBy"creationData_Year",需要从"creationDate"获取.

使用Java 在DataFrame中进行这种转换的最简单方法是什么?



1> ErhWen Kuo..:

检查spark dataframe api和sql函数后,我在下面的片段中说:

DateFrame df = sqlContext.read().json("MY_JSON_DATA_FILE");

DataFrame df_DateConverted = df.withColumn("creationDt", from_unixtime(stackoverflow_Tags.col("creationDate").divide(1000)));

"creationDate"列除以"1000"的原因是TimeUnit不同.orgin"creationDate"是" 毫秒 "中的unix时期,但是spark sql" from_unixtime "旨在处理" "中的unix时期.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有