Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
project-collie
project-collie
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • project-collieproject-collie
  • Wiki
    • Data_pump
    • Writers
  • file

file · Changes

Page history
调整格式 authored Apr 26, 2020 by 吴一博's avatar 吴一博
Show whitespace changes
Inline Side-by-side
Showing with 47 additions and 29 deletions
+47 -29
  • data_pump/writers/file.md data_pump/writers/file.md +47 -29
  • No files found.
data_pump/writers/file.md
View page @ a86b8a2a
# 输出文件 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
**class**参数配置为```file.FileWriter```
> path: 输出文件的目录路径
## init 参数
> overwrite=False: 是否覆盖写
|配置参数|默认值|说明|
|----|----|----|
|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写入|
|csv_dialect|customize| csv格式,支持 'mysql','excel', 'customize', 默认为自定义格式。
|enclosed_sep| | output_form 为csv时, 是否将字段内容用指定的符号包起来,可设为双引号‘"’
|escaped_sep| | 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|不压缩| 是否压缩文件,,如果需要压缩,可设为'gz','tar'
> max_size=125: 限制单个文件的大小
> scale='m': max_size的单位,支持['b', 'k', 'm', 'g', 't']
### 保存为CSV格式
> prefix="split": 文件前缀
* output_form
* csv_dialect
* csv_sep
* csv_cols
* enclosed_sep
* escaped_sep
* is_none
> output_form='bson': 文件格式,支持['bson', 'json', 'csv']
>当csv_dialect设为excel或mysql时,csv_sep、enclosed_sep、escaped_sep、is_none参数设置将被忽略
> csv_sep='|': output_form为csv时的字段分隔符
#### 为mysqlimport准备数据
> csv_cols=None: output_form 为csv时, 指定需要写的字段,并按指定的字段顺序写文件, 默认将json中的所有value写入
将csv_dialect设为 mysql 生成的CSV文件可以使用mysqlimport导入到mysql中。
```
@宋志鹏 在这里贴一个mysqlimport完整命令
> enclosed_sep=None: output_form 为csv时, 是否将字段内容用指定的符号包起来,可设为双引号‘"’
```
> escaped_sep=None: output_form 为csv时, 将字段内容中的分隔符替换为指定的字符,如csv_sep='\t',escaped_sep='\\t'时,将字段内容中的'\t' 替换为'\\t'
#### 为excel准备数据
csv_dialect 设为excel生成的CSV文件,可以直接使用excel打开。
> 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参数设置将失效
## 配置样例:
```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"
```
output_form为csv时,插件内部已经将特殊字符、分割符等做了转义处理,所以不用担心错行、导入mysql中字段错乱问题。
......
Clone repository
  • README
  • data_pump
    • data_pump
    • filters
    • filters
      • bloom
    • readers
    • readers
      • file
      • kafka
      • mongodb
      • sql
    • writers
    • writers
      • file
  • dev_guide
  • dev_manual
  • Home
  • ops
    • ansible
View All Pages