Kettle使用JavaScript代码处理数据

  • 需求
  • 一、建立DB连接
  • 二、建立处理流程
    • 1、拖入表输入功能模块
    • 2、拖入JavaScript代码功能模块
        • 连接表输如---->JavaScript代码
        • 处理经纬度
    • 对处理好的经纬度进行正则表达式匹配处理
    • 过滤记录并分别输出到不同的文件里

需求

处理经纬度格式不正确的数据

经纬度格式如:
经度:a-b-c
纬度:d-e-f

a、b、c、d、e、f都可以为数字(也可以为浮点等,只要符合经纬度要求就OK)

把符合要求的数据存放到一个xlsx里
不符合要求的数据存放到一个xlsx里

建立的处理流程如下:

结果:
处理的结果会得到两个文件,一个是符合要求的,一个是不符合要求的。

一、建立DB连接


连接要处理数据库的数据库

二、建立处理流程

1、拖入表输入功能模块

选择数据库连接、并按自己的需求写入相关的sql

2、拖入JavaScript代码功能模块

考虑到经纬度格式可能会出现存在空格的,而且经纬度不在一块。
现在可以利用JavaScript代码把从数据库中得到的经度和纬度合并到一起,然后对数据进行去掉所有的空格处理。

连接表输如---->JavaScript代码

处理经纬度

//Script here

 //去前后空格
//var LO = LONGITUDE.replace(/(^\s*)|(\s*$)/g, "");
//var LA = LATITUDE.replace(/(^\s*)|(\s*$)/g, "");

//拼接成一个要验证的字符串
//var LL = LO +"," +LA;

 //去前后空格
//var LL=L1.replace(/(^\s*)|(\s*$)/g, "");


//直接去除所有的空格
var LL = (LONGITUDE+","+LATITUDE).replace(/\s+/g,"");

对处理好的经纬度进行正则表达式匹配处理


配置正则表达式

正则表达式

([\d^(-?\d+)(\.\d+)?$]+)-([\d^(-?\d+)(\.\d+)?$]+)-([\d^(-?\d+)(\.\d+)?$]+)[,]([\d^(-?\d+)(\.\d+)?$]+)-([\d^(-?\d+)(\.\d+)?$]+)-([\d^(-?\d+)(\.\d+)?$]+)

过滤记录并分别输出到不同的文件里

过滤记录的配置

更多推荐

Kettle使用JavaScript代码处理数据