赞
踩
详细笔记参考:https://blog.csdn.net/yuan2019035055/article/details/120409547
以下只是简单记录一下我学习过程中的心得
JSONPath 类似于 XPath 在 xml 文档中的定位,JsonPath 表达式通常是用来路径检索或设置Json的。其表达式可以接受“dot - notation”(点记法)和“bracket -notation”(括号记法)
实操注意事项
这里只要注意一下路径的写法和理解,$是表示根路径,对于$..data和$..id我的理解是:$指的是submissions,因为真正的json数据其实是从submissions开始算的,然后..表示递归遍历,因为submissions下面有两个数组,所以需要递归遍历,所以$..data就是递归遍历submissions下的所有data,主要是对..的理解,同理,下面的$..file是的$是指的data,因为第二个json input的数据来源是第一个json input传入的,用..也是因为有多个数组需要递归遍历
- {
- "status": "ok",
- "response": {
- "submissions": [
- {
- "id": "59434767",
- "timestamp": "2011-11-21 09:21:53",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0",
- "remote_addr": "192.168.1.1",
- "payment_status": "",
- "data": [
- {
- "field": "13776121",
- "value": "Baylor Dallas"
- },
- {
- "field": "13776401",
- "value": "CHF"
- },
- {
- "field": "13777966",
- "value": "John Doe"
- },
- {
- "field": "13780027",
- "value": "9999"
- },
- {
- "field": "13778165",
- "value": "None of the above"
- },
- {
- "field": "13778985",
- "value": "Yes"
- },
- {
- "field": "13778280",
- "value": "Yes"
- },
- {
- "field": "13778424",
- "value": "Yes"
- },
- {
- "field": "13778290",
- "value": "Yes"
- },
- {
- "field": "13778324",
- "value": "Yes"
- },
- {
- "field": "13778864",
- "value": "Yes"
- }
- ]
- },
- {
- "id": "59474875",
- "timestamp": "2011-11-21 17:01:22",
- "user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0",
- "remote_addr": "192.168.1.1",
- "payment_status": "",
- "data": [
- {
- "field": "13776121",
- "value": "Healthsouth,"
- },
- {
- "field": "13776401",
- "value": "Pneumonia"
- },
- {
- "field": "13777966",
- "value": "Jane Doe"
- },
- {
- "field": "13780027",
- "value": "390"
- },
- {
- "field": "13778165",
- "value": "Experienced a fall?"
- },
- {
- "field": "13861153",
- "value": "Yes"
- },
- {
- "field": "13780018",
- "value": "Yes"
- },
- {
- "field": "13780006",
- "value": "No"
- },
- {
- "field": "13780023",
- "value": "Yes"
- },
- {
- "field": "13780024",
- "value": "Yes"
- }
- ]
- }
- ],
- "total": 2,
- "pages": 1
- }
- }
这里我遇到了一个报错
kettle报错 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver
原因就是没有导入jdbc的jar包或者导入后没有重启应用,我是没有重启
这里只要记得设置输出文件的合适分隔符即可,默认是用的;
这里注意数据写到输出表的时候是通过追加的方式,也就是你如果执行两次,那么就会有两套重复的数据,是追加不是覆盖
这里要注意拆分后的新字段需要设置合适的类型,不然就报错
行扁平化就是把同一组的多行数据合并成为一行,可以理解为列拆分为多行的逆向操作
但是需要注意的是行扁平化控件使用有两个条件:
使用之前需要对数据进行排序
每个分组的数据条数要保证一致,否则数据会有错乱
列转行,顾名思义多列转一行,就是如果数据一列有相同的值,按照指定的字段,将其中一列的字段内容变成不同的列,然后把多行数据转换为一行数据的过程
注意:列转行之前数据流必须按照分组字段进行排序,否则数据会错乱!
这里主要是要理解上面的图怎么填,关键字就是你要把哪一列的值横过来,关键字的值就是上面的那个关键字的列值
行转列,一行转多列,就是把数据字段的字段名转换为一列,把数据行变为数据列。我们也可以简单理解为行转列控件是列转行控件的逆向操作
理解上面的图的值怎么填
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。