业务-根据EDIP的flg文件生成测试数据

根据EDIP的flg文件生成测试数据。
30张表,一个表1亿,而且要生成在硬盘而不是hdfs,但直接生成在硬盘就用不了spark了,所以先生成在hdfs,然后下载到硬盘,为了防止hdfs空间不足,暂时先把hdfs的副本书改为1。hdfs副本书改为1,只对新数据有效,旧数据还是原来的3个副本。

process:
读EDIP的flag文件,形成一个List<String[]>,然后生成1个template,然后遍历写入到hdfs,然后从hdfs下载到本地硬盘。

trap

1. flg文件的date和dt类型不显示长度,需要使用2个起止位置相减 + 1来获取长度

2. date和dt类型的信息跟普通的char类型不同,格式不同,注意split分割符的设置

3. mapping信息和edip信息的字段长度有可能不一致,要注意,字段设的比EDIP的短可以补空格,长了就会有问题,导致截取不正常

4. scala中,使用f"str%10s"可以在字符串的前面补空格,但这里面的长度也就是上例中的10不能传变量,原因未知。在后面补空格用f"str%-10s"

5. hdfs的javaAPI中,如果要递归删文件夹,args1要设为true

6. hdfs的javaAPI中,不能直接下载文件夹,要循环里面的文件挨个下载。但这些文件可以共用一个输出流,也就是说可以直接写入到1个文件中。

在这里插入图片描述

7. 对IO流的理解

以程序为中介、为加工中心,可以在不同设备之间传数据。
比如以hdfs为输入流,以本地磁盘为输出流,使用程序读入和写出,程序就是个加工、处理中心。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值