DataX TxtFileReader 说明
https://github.com/alibaba/DataX/blob/master/txtfilereader/doc/txtfilereader.md
1 快速介绍
TxtFileReader提供了读取本地文件系统数据存储的能力。在底层实现上,TxtFileReader获取本地文件数据,并转换为DataX传输协议传递给Writer。
本地文件内容存放的是一张逻辑意义上的二维表,例如CSV格式的文本信息。
2 功能与限制
TxtFileReader实现了从本地文件读取数据并转为DataX协议的功能,本地文件本身是无结构化数据存储,对于DataX而言,TxtFileReader实现上类比OSSReader,有诸多相似之处。目前TxtFileReader支持功能如下:
支持且仅支持读取TXT的文件,且要求TXT中shema为一张二维表。
支持类CSV格式文件,自定义分隔符。
支持多种类型数据读取(使用String表示),支持列裁剪,支持列常量
支持递归读取、支持文件名过滤。
支持文本压缩,现有压缩格式为zip、gzip、bzip2。
多个File可以支持并发读取。
我们暂时不能做到:
单个File支持多线程并发读取,这里涉及到单个File内部切分算法。二期考虑支持。
单个File在压缩情况下,从技术上无法支持多线程并发读取。
这里提到的数据格式是CSV,很多人对CSV,一说就明白,但是一用就糊涂。先说下CSV的标准:RFC4180
https://www.rfc-editor.org/rfc/rfc4180.html
什么是RFC4180文件格式?
RFC4180是一种规范,定义了一种常见的CSV文件格式。根据这个规范,CSV文件由多个行组成,每行由逗号分隔的字段组成。字段可以包含文本、数字或日期等数据。在RFC4180规范中,字段中的文本可以包含引号,并使用双引号进行转义。这意味着如果字段中包含逗号或双引号,可以使用双引号将其括起来。
来源:https://blog.51cto.com/u_16175443/6825450
dataworks 的数据集成
https://github.com/alibaba/DataX/blob/master/ossreader/doc/ossreader.md
https://github.com/alibaba/DataX
一般数据示例:
"Name","Age","Department"
"John Doe","30","Sales"
"Jane Smith","25","Marketing"
但是实际上还包括转义,例如:
"aaa","b""bb","ccc"
如果遵循RFC4180这个标准,使用dataworks数据集成是可以正确读取该数据的。