加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:31:43 所属栏目:Java 来源:网络整理
导读:我有一个json数据文件,其中包含一个属性[creationDate],它是“long”数字类型的unix epoc. Apache Spark DataFrame架构如下所示: root |-- creationDate : long (nullable = true) |-- id: long (nullable = true) |-- postTypeId: long (nullable = true)
我有一个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中进行这种转换的最简单方法是什么?

解决方法

检查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时期.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读