我有一个巨大的文本文件(以gbs为单位),每行都有计划文本数据,需要解析并提取到一个结构中进行进一步处理。每一行都有200个字符长的文本,我有一个正则表达式来解析每一行并将其分成不同的组,这些组稍后将保存到一个平面列数据中
数据样本
1759387ACD06JAN1910MAR191234567ACRT
正则表达式
(.{7})(.{3})(.{7})(.{7})(.{7})(.{4})
数据结构
Customer ID, Code, From Date, To Date, TrasactionId, Product code
1759387, ACD, 06JAN19, 10MAR19, 1234567, ACRT
请建议一个最佳的方法来解析这个巨大的数据并推送到内存网格,当调用相应的api时,spark jobs将再次使用这个网格进行进一步的处理。
2条答案
按热度按时间yvgpqqbh1#
您需要告诉spark要读取哪个文件,以及在读取时如何处理内容。
举个例子:
在代码段中,someobject是一个具有问题的数据结构的对象
rjjhvcjd2#
您可以使用df方法。使用-copyfromlocal命令将串行文件复制到hdfs,并使用下面的代码解析每个记录
我假设gireesh.txt中的示例记录如下
Spark代码
给出以下结果。
编辑1:
您可以在一个单独的函数中使用Map“transformation”,如下所示。