故障代碼如下:


// *************************************************************************
//     USER DATA TYPES
// *************************************************************************/** Simple POJO.*/import java.sql.Timestamp;
import org.apache.flink.streaming.api.windowing.time.Time;
/*** Simple POJO.*/
public class OrderStream
{public int id;public Long user;public String product;public int amount;public Long rowtime;public OrderStream(){}public OrderStream(int id,Long user,String product,int amount,Long rowtime){this.id=id;this.user = user;this.product = product;this.amount = amount;this.rowtime = rowtime;}@Overridepublic String toString(){return "Order{" +"id="+id+", user=" + user +", product='" + product + '\'' +", amount=" + amount +", ts=" + rowtime +'}';}
}DataStream<OrderStream> orderA = env.fromCollection(Arrays.asList(new OrderStream(1, 1L, "beer", 3, 1505529000L), //2017-09-16 10:30:00new OrderStream(2, 1L, "beer", 3, 1505529000L), //2017-09-16 10:30:00new OrderStream(3, 3L, "rubber", 2, 1505527800L),//2017-09-16 10:10:00new OrderStream(4, 3L, "rubber", 2, 1505527800L),//2017-09-16 10:10:00new OrderStream(5, 1L, "diaper", 4, 1505528400L),//2017-09-16 10:20:00new OrderStream(6, 1L, "diaper", 4, 1505528400L)//2017-09-16 10:20:00));tEnv.createTemporaryView("Orders", orderA,$("id"),$("user"), $("product"), $("amount"), $("rowtime").proctime());

完整報錯如下:

Exception in thread "main" org.apache.flink.table.api.ValidationException: The proctime attribute 'rowtime' must not replace an existing field.at org.apache.flink.table.typeutils.FieldInfoUtils$ExprToFieldInfo.validateProctimeDoesNotReplaceField(FieldInfoUtils.java:606)at org.apache.flink.table.typeutils.FieldInfoUtils$ExprToFieldInfo.createProctimeFieldInfo(FieldInfoUtils.java:599)at org.apache.flink.table.typeutils.FieldInfoUtils$ExprToFieldInfo.visit(FieldInfoUtils.java:564)at org.apache.flink.table.typeutils.FieldInfoUtils$ExprToFieldInfo.visit(FieldInfoUtils.java:536)at org.apache.flink.table.expressions.ApiExpressionVisitor.visit(ApiExpressionVisitor.java:39)at org.apache.flink.table.expressions.UnresolvedCallExpression.accept(UnresolvedCallExpression.java:132)at org.apache.flink.table.typeutils.FieldInfoUtils.lambda$extractFieldInfosByNameReference$7(FieldInfoUtils.java:431)at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)at org.apache.flink.table.typeutils.FieldInfoUtils.extractFieldInfosByNameReference(FieldInfoUtils.java:432)at org.apache.flink.table.typeutils.FieldInfoUtils.extractFieldInformation(FieldInfoUtils.java:266)at org.apache.flink.table.typeutils.FieldInfoUtils.getFieldsInfo(FieldInfoUtils.java:233)at org.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl.lambda$asQueryOperation$0(StreamTableEnvironmentImpl.java:384)at java.util.Optional.map(Optional.java:215)at org.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl.asQueryOperation(StreamTableEnvironmentImpl.java:383)at org.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl.fromDataStream(StreamTableEnvironmentImpl.java:230)at org.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl.createTemporaryView(StreamTableEnvironmentImpl.java:262)at DistinctAggregation4.main(DistinctAggregation4.java:35)

The proctime attribute 'rowtime' must not replace an existing field.

原因與解決方案:

原因 解決方案
使用proctime,那麼列名不能是OrderStream中的 tEnv.createTemporaryView("Orders", orderA,$("id"),$("user"), $("product"), $("amount"), $("rowtime1").proctime());
使用rowtime,,列名可以是OrderStream中的.
tEnv.createTemporaryView("Orders", orderA,$("id"),$("user"), $("product"), $("amount"), $("rowtime").rowtime());

The proctime attribute ‘rowtime‘ must not replace an existing field.相关推荐

  1. Caused by: java.lang.IllegalArgumentException: The handle attribute is must refer to an existing chi

    最近一直在忙着写代码,就忘记了来CSDN上写博客了.哈哈,我真是个懒蛋... 今天在做SlidingDrawer,就是类似于抽屉那样的效果,遇到了下面这样的一个问题, Caused by: java. ...

  2. Please move ‘proctime(r_proctime)‘ to the end of the schema.以及rowtime和proctime

    代码: List<Tuple3<String,Long,Timestamp>>ratesHistoryData = new ArrayList<>();ratesH ...

  3. 使用solr的完整流程

    本文摘要 一.下载与安装 二.运行solr 三.创建core实例 四.配置schema 五.DIH导入数据 六.solrJ(java客户端) 本文所用到的工具 Postman :简单说就是一个可以发送 ...

  4. (九)solr 相关教程

    本文为学习笔记,主要用于记录本人学习过程.部分内容为转载!!!!. 1. solr7.4教程 使用solr的完整流程 本文摘要 一.下载与安装 二.运行solr 三.创建core实例 四.配置sche ...

  5. python替换文本换行符_python解决replace(“/n“,““)无法替换换行符

    先看原数据,一直在想办法清除 "\n"和"/"这两个符号. # 从提取出的几列来看,还有些细节需要再洗洗:例如为了统计和美观需要,"\n"和 ...

  6. Attribute在.net编程中的应用

    作者:niwalker       出处:csdn SqlCommandGenerator类的设计 SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数,使用被SqlComma ...

  7. sql视图语句_SQL视图:Replace View语句的示例语法

    sql视图语句 A View is a database object that presents data from in one or more tables. The same SQL stat ...

  8. android add fragment,fragment中的add和replace方法的区别浅析

    使用 FragmentTransaction 的时候,它提供了这样两个方法,一个 add , 一个 replace ,对这两个方法的区别一直有点疑惑. 我觉得使用 add 的话,在按返回键应该是回退到 ...

  9. MySQL中 replace 替换字符

    阅读目录 语法:replace(field,search,replace) 说明: field - 数据库表的列名 search - 需要替换的字符串 replace - 替换成的字符串 语义:将列名 ...

最新文章

  1. Dapper 多数据库优化
  2. 类型转换与采样 || SMOTE算法
  3. python和shell哪个快_有没有可能让这个shell脚本更快?
  4. kaptchaCode(验证码)
  5. 编译log4cplus-2.0.x备忘录
  6. 总奖金高达180万元 蚂蚁金服启动区块链创新大赛
  7. java pcm16位_Java – 将16位带符号的pcm音频数据数组转换为双数组
  8. RocketMQ源码解析-PullConsumer取消息(1)
  9. 一个用于消息队列的并发式php进程管理程序-守护
  10. 字节跳动武汉招聘 2000 人,距离大厂 Offer,你还差这篇 Java 干货!| 原力计划...
  11. JSP——JSP介绍以及运行原理
  12. 2.《JSP应用开发案例教程》第1章 JSP概述
  13. 跳槽理由—你的跳槽理由合理吗
  14. WR720N改造记录1
  15. 阮一峰:炫耀从来不是我的动机,好奇才是(图灵访谈)
  16. 前端入门最全学习笔记--html
  17. 日记侠:微信引流第一步你做对了吗?
  18. 第六届蓝桥杯大赛个人赛决赛(C/C++大学B组)
  19. m3u8文件里面的key加密了,可以合并吗?
  20. Zinnia库的学习和使用过程

热门文章

  1. Weex Ui - Weex Conf 2018 干货分享
  2. Django进阶Model篇—数据库操作(ORM)
  3. Spring源码学习:day2
  4. 解决 项目cocoapods diff: /../Podfile.lock: No such file or directory
  5. Solr in Action 翻译完成情况
  6. editor多功能文本框在有些计算机上不能正常加载,解决方法,本人用的是把js调用方法放到body/body后面)...
  7. as3.0全屏代码…
  8. SqlDataAdapter和SqlCommandBuilder删除数据
  9. php mysql书城_php在线书城 thinkphp源码(含数据库脚本)
  10. php调用不存在的方法,php如何调用不存在的方法