|
|
# 输出文件 file
|
|
|
> 输出结果写文件
|
|
|
|
|
|
配置样例:
|
|
|
```yaml
|
|
|
stock_ic_clear:
|
|
|
class: file.FileWriter
|
|
|
init:
|
|
|
path: "/data/disk3/data_lake/ic/clear"
|
|
|
output_form: csv
|
|
|
csv_sep: "\t"
|
|
|
csv_cols: "company_id,clear_director,clear_members,create_time,update_time"
|
|
|
is_none: True
|
|
|
escaped_sep: "\\t"
|
|
|
```
|
|
|
init参数说明:
|
|
|
> name: 插件名字,对应样例中的stock_ic_clear
|
|
|
|
|
|
> path: 输出文件的目录路径
|
|
|
|
|
|
> overwrite=False: 是否覆盖写
|
|
|
|
|
|
> max_size=125: 限制单个文件的大小
|
|
|
|
|
|
> scale='m': max_size的单位,支持['b', 'k', 'm', 'g', 't']
|
|
|
|
|
|
> prefix="split": 文件前缀
|
|
|
|
|
|
> output_form='bson': 文件格式,支持['bson', 'json', 'csv']
|
|
|
|
|
|
> csv_sep='|': output_form为csv时的字段分隔符
|
|
|
|
|
|
> csv_cols=None: output_form 为csv时, 指定需要写的字段,并按指定的字段顺序写文件, 默认将json中的所有value写入
|
|
|
|
|
|
> enclosed_sep=None: output_form 为csv时, 是否将字段内容用指定的符号包起来,可设为双引号‘"’
|
|
|
|
|
|
> escaped_sep=None: output_form 为csv时, 将字段内容中的分隔符替换为指定的字符,如csv_sep='\t',escaped_sep='\\t'时,将字段内容中的'\t' 替换为'\\t'
|
|
|
|
|
|
> is_none=None: output_form 为csv时,如果is_none is True, 会将None写为\N, 否则将None写为''
|
|
|
|
|
|
> compress=None: 是否压缩文件,默认不压缩,如果需要压缩,可设为'gz','tar'
|
|
|
|
|
|
> csv_dialect='customize': csv格式,支持 'mysql','excel', 'customize', 默认为自定义格式。 值为mysql时,可通过mysqlimport工具将csv文件导入mysql表,参数设置:--fields-terminated-by='\t' --lines-terminated-by='\n' --fields-enclosed-by=''。csv_dialect 值为‘mysql’或‘excel’时,csv_sep、enclosed_sep、escaped_sep、is_none参数设置将失效
|
|
|
|
|
|
|
|
|
output_form为csv时,插件内部已经将特殊字符、分割符等做了转义处理,所以不用担心错行、导入mysql中字段错乱问题。
|
|
|
自定义csv格式时,分隔符建议设为常用分隔符。字段分隔符推荐使用‘\t’,',',换行符推荐使用‘\n’,字段封闭符推荐使用‘"’,若不是为了将csv文件导入mysql表中,建议is_none使用默认值
|
|
|
|