java spark读写hdfs_Spark读取HDFS数据输出到不同的文件

最近有一个需求是这样的:原来的数据是存储在MySQL,然后通过Sqoop将MySQL的数据抽取到了HDFS集群上,抽取到HDFS上的数据都是纯数据,字段值之间以\t分隔,现在需要将这部分数据还原为json格式的,因为这样做的原因:一来是更清楚具体字段的含义;二来是后期的数据通过kafka直接消费存储到HDFS,存的就是json数据,所以为了所有存储数据格式一致,需要将历史数据进行转换。所以只能通过MR或者Spark进行一次数据清洗转换了。因为需要根据每条数据中的一个时间字段将数据存储到不同的文件中。比如一条纯数据如下:

1 2019-04-26 00:32:09.0 null true 1025890 10004515

那么需要根据第二个字段信息来将数据分别存储到不同的文件夹,分为4个时段,格式为:

/2019/04/26/00-06.txt,/2019/04/26/06-12.txt,/2019/04/26/12-18.txt,/2019/04/26/18-00.txt,

直接上spark代码:

import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat

import org.apache.spark.sql.SparkSession

/**

* spark版本将数据输出到不同文件

* create date:2019-07-16

* author:ly

*/

object OutputToMultiFileApp {

def main(args: Array[String]): Unit = {

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值