使用DataX将mysql数据倒入Hive由于字段包含【\n】导致Hive数据串行,在DataX配置文件中加入Transformer解决。
参考-DataX-github
问题:
- DataX本身自带的函数没有类似replace的替换函数所以需要自定义groovy函数来实现。
- 字段本身会有空值导致数据被过滤,需要做容错。
话不多说上代码
"transformer":[
{
"name":"dx_groovy",
"parameter":{
"code":"Column column = record.getColumn(13);\n String oriValue = column.asString();\n if(oriValue){String newValue = oriValue.replace(\"\\n\",\"\");\n record.setColumn(13, new StringColumn(newValue));}\n return record;",
"extraPackage":[]
}
}
],
说明:transformer是DataX定义字段转换的模块,dx_groovy是指定自定函数,代码内容实现了对\n的替换以及空值原样输出。