固定长度文件一次读取具有多种记录格式的Spark

问题描述

全部

我试图在Spark中读取具有多种记录类型的文件,但不知道如何执行。有人可以指出,如果有办法的话?或一些现有的软件包?或一些用户的git包

下面的示例-我们有一个文本文件,其中记录类型为2个(可能大于2个): 00X-record_ind |名|姓氏

0-3 record_ind
4-10 firstname
11-16 lastname
============================
00Y - record_ind | Account_#| STATE | country
0-3 record_ind
4-8 Account #
9-10 STATE
11-15 country

input.txt
------------

    00XAtun   Varma 
    00Y00235ILUSA   
    00XDivya  Reddy  
    00Y00234FLCANDA  
    
    sample output/data frame
    output.txt
    
    record_ind | x_First_name | x_Last_name | y_Account | y_STATE | y_country
    ---------------------------------------------------------------------------
      00x      | Atun         | Varma       | null      | null    | null
      00y      | null         | null        | 00235     | IL      | USA       
      00x      | Divya        | Reddy       | null      | null    | null
      00y      | null         | null        | 00234     | FL      | CANDA         

解决方法

一种实现此目的的方法是将数据加载为“文本”。完整的行将被加载到名为“值”的一列中。现在调用一个UDF,它会根据条件修改每一行,并以所有行都遵循相同模式的方式转换数据。 最后,使用模式创建所需的数据框并保存在数据库中。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...