vs2017建设网站wordpress 首页函数

news/2025/10/5 5:14:07/文章来源:
vs2017建设网站,wordpress 首页函数,赣州安全教育平台,平凉市崆峒区建设局网站大纲 标量函数入参并非表中一行#xff08;Row#xff09;入参是表中一行#xff08;Row#xff09;alias PyFlink中关于用户定义方法有#xff1a; UDF#xff1a;用户自定义函数。UDTF#xff1a;用户自定义表值函数。UDAF#xff1a;用户自定义聚合函数。UDTAF… 大纲 标量函数入参并非表中一行Row入参是表中一行Rowalias PyFlink中关于用户定义方法有 UDF用户自定义函数。UDTF用户自定义表值函数。UDAF用户自定义聚合函数。UDTAF用户自定义表值聚合函数。 这些字母可以拆解如下 UD表示User Defined用户自定义F表示Function方法;T表示Table表;A表示Aggregate聚合 Aggregate聚合函数是指以多行数据为输入计算出一个新的值的函数。这块我们会在后续的章节介绍本文我们主要介绍非聚合类型的用户自定义方法的简单使用。 标量函数 即我们常见的UDF。 def udf(f: Union[Callable, ScalarFunction, Type] None,input_types: Union[List[DataType], DataType, str, List[str]] None,result_type: Union[DataType, str] None,deterministic: bool None, name: str None, func_type: str general,udf_type: str None) - Union[UserDefinedScalarFunctionWrapper, Callable]:我们主要关注result_type和input_types它们分别用于确定函数的输入和输出。 input_types可以是List[DataType], DataType, str, List[str]之一任何一种这个要视使用者决定。UDTF也是这种类型它们没啥区别。 result_type只能是DataType或str而UDTF可以是List[DataType], DataType, str, List[str]任意之一。这也是UDF和UDTF最大的区别。 我们以一个例子来介绍它的用法。这个例子会将大写字符转换成小写字符然后统计字符出现的次数。 在介绍例子之前我们先构造Execute之前的准备环境 from pyflink.common import Configuration from pyflink.table import (EnvironmentSettings, TableEnvironment, Schema) from pyflink.table.types import DataTypes from pyflink.table.table_descriptor import TableDescriptor from pyflink.table.expressions import lit, col from pyflink.common import Row from pyflink.table.udf import udf,udtf,udaf,udtaf import pandas as pd from pyflink.table.udf import UserDefinedFunctionword_count_data [A, B, C, D, E, F, G, H, I, J, A, G] def word_count():config Configuration()# write all the data to one fileconfig.set_string(parallelism.default, 1)env_settings EnvironmentSettings \.new_instance() \.in_batch_mode() \.with_configuration(config) \.build()t_env TableEnvironment.create(env_settings)row_type_tab_source DataTypes.ROW([DataTypes.FIELD(word, DataTypes.STRING())])tab_source t_env.from_elements(map(lambda i: Row(i), word_count_data), row_type_tab_source)# define the sink schemasink_schema Schema.new_builder() \.column(word, DataTypes.STRING().not_null()) \.column(count, DataTypes.BIGINT()) \.primary_key(word) \.build()# Create a sink descriptorsink_descriptor TableDescriptor.for_connector(print)\.schema(sink_schema) \.build()t_env.create_temporary_table(WordsCountTableSink, sink_descriptor)这段代码从读取数据word_count_data并构造出tab_source作为输入数据暂存的表。下面我们看下入参不同时UDF怎么写 入参并非表中一行Row udf(result_typeDataTypes.ROW([DataTypes.FIELD(lower_word, DataTypes.STRING())]), input_types[DataTypes.STRING()])def colFunc(oneCol):return Row(oneCol.lower())input_types我们设置成[DataTypes.STRING()]即该数组中只有一个参数也表示修饰的方法只有一个参数类型是String。如果觉得input_types写起来麻烦这个参数可以不设置。 result_type我们设置为一个DataTypes.ROW([DataTypes.FIELD(“lower_word”, DataTypes.STRING())])。我们可以把它看成是一个新表的结构描述即一行只有一个字段——lower_word它的类型也是String。 tab_lowertab_source.map(colFunc(col(word)))map方法中我们会给UDF修饰的方法传入原始表tab_source每行中的word字段的值。然后构造出一个新的表tab_lower。这个新的表没有word字段只有UDF中result_type定义的lower_word。 def map(self, func: Union[Expression, UserDefinedScalarFunctionWrapper]) - Table:后续只要使用这个新表新字段即可。 tab_lower.group_by(col(lower_word)) \.select(col(lower_word), lit(1).count) \.execute_insert(WordsCountTableSink) \.wait()完整代码 from pyflink.common import Configuration from pyflink.table import (EnvironmentSettings, TableEnvironment, Schema) from pyflink.table.types import DataTypes from pyflink.table.table_descriptor import TableDescriptor from pyflink.table.expressions import lit, col from pyflink.common import Row from pyflink.table.udf import udf,udtf,udaf,udtaf import pandas as pd from pyflink.table.udf import UserDefinedFunctionword_count_data [A, B, C, D, E, F, G, H, I, J, A, G] def word_count():config Configuration()# write all the data to one fileconfig.set_string(parallelism.default, 1)env_settings EnvironmentSettings \.new_instance() \.in_batch_mode() \.with_configuration(config) \.build()t_env TableEnvironment.create(env_settings)row_type_tab_source DataTypes.ROW([DataTypes.FIELD(word, DataTypes.STRING())])tab_source t_env.from_elements(map(lambda i: Row(i), word_count_data), row_type_tab_source )# define the sink schemasink_schema Schema.new_builder() \.column(word, DataTypes.STRING().not_null()) \.column(count, DataTypes.BIGINT()) \.primary_key(word) \.build()# Create a sink descriptorsink_descriptor TableDescriptor.for_connector(print)\.schema(sink_schema) \.build()t_env.create_temporary_table(WordsCountTableSink, sink_descriptor)udf(result_typeDataTypes.ROW([DataTypes.FIELD(lower_word, DataTypes.STRING())]), input_types[DataTypes.STRING()])def colFunc(oneCol):return Row(oneCol.lower())tab_lowertab_source.map(colFunc(col(word))) tab_lower.group_by(col(lower_word)) \.select(col(lower_word), lit(1).count) \.execute_insert(WordsCountTableSink) \.wait()if __name__ __main__:word_count()入参是表中一行Row udf(result_typeDataTypes.ROW([DataTypes.FIELD(lower_word, DataTypes.STRING())]), input_typesrow_type_tab_source)def rowFunc(row):return Row(row[0].lower())tab_lowertab_source.map(rowFunc) tab_lower.group_by(col(lower_word)) \.select(col(lower_word), lit(1).count) \.execute_insert(WordsCountTableSink) \.wait()主要的区别是map方法直接传递udf修饰的方法而不是直接其调用返回值。input_types是原始表的行结构——RowType而不是一个参数数组。 map方法给rowFunc传递原始表tab_source的每行数据然后构造出一个新表tab_lower。新表的字段也在udf的result_type中定义了它是String类型的lower_word。后面我们对新表就要聚合统计这个新的字段而不是老表中的字段。 alias 前面两个案例在定义UDF时我们严格设置了result_type和input_types。实际input_types可以不用设置但是result_type必须设置。上面例子中result_type我们都设置为RowType即表行的结构。如果觉得这样写很麻烦可以考虑使用alias来实现。 udf(result_typeDataTypes.STRING())def colFunc(oneCol):return oneCol.lower()tab_lowertab_source.map(colFunc(col(word))).alias(lower_word)tab_lower.group_by(col(lower_word)) \.select(col(lower_word), lit(1).count) \.execute_insert(WordsCountTableSink) \.wait()udf(result_typeDataTypes.STRING())def rowFunc(row):return row[0].lower()tab_lowertab_source.map(rowFunc).alias(lower_word)tab_lower.group_by(col(lower_word)) \.select(col(lower_word), lit(1).count) \.execute_insert(WordsCountTableSink) \.wait()这样我们在定义udf时只是指定了返回类型是个字符串也不知道它在新表中叫啥名字实际叫f0。但是为了便于后续使用我们使用alias给它取了一个别名lower_word。这样就可以让其参与后续的计算了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪些网站可以找到兼职做报表的网站建设背景和目标

1 机器学习的三个方面 1.1 数据 包括数据采集、增强和质量管理,相当于给人工智能模型学习什么样的知识 第一、什么专业的知识; 第二、知识是否有体系,也就是说样本之间是否存在某种关联、差异等,这个涉及到样本选择等问题&#x…

素材网站下载跨境外贸平台有哪些

「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等在DLP-KDD 2021征稿之际,为大家准备了DLP-KDD2020的全部文章和资源列表,内容涵盖了几乎所有深度学习的业界应用前沿,包括深度学习推荐系统应用…

公司网站维护怎么维护做最最优秀的视频网站

目录 一,tail查看文件尾部指令 二,date显示日期指令 三,cal查看日历指令 四,find搜索指令 五,grep 查找指令 六,> 和>> 重定向输出指令 七, | 管道指令 八,&&逻辑控…

网站套程序微信接单任务群

今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p295-p314 super关键字 super代表父类的引用,用于访问父类的属性、方法、构造器 super细节和语法 访问父类的属性,但不能访问父类的private属性 super.属性名 访问父类的…

做响应式网站所用的代码网站建设如何财务处理

Android上实现柱状图算法实现 第一步: 获取Android设备的屏幕大小 第二步: 在View对象中使用Canvas绘制蓝色边框与白色背景XY轴两条线,代码如下 第三步: 绘制柱状图标题 第四步: 根据数据集计算出每个系列数据所占X轴的…

网站建设公司渠道房地产网站建设招商

经过一个寒假的学习 学了许多的关于数据结构知识 栈与队列,优先队列,单调栈,单调队列,双端队列https://blog.csdn.net/2301_81794044/article/details/135871598?spm1001.2014.3001.5501深搜和广搜https://blog.csdn.net/2301_…

海北营销网站建设公司网站开发毕业设计中期检查表

1、安装node https://nodejs.org (官网下载对应的node,一般推荐长期稳定版本 LTS) 需要node的版本是大于 v0.10.0 查看自己本地node 版本号 node -v2、安装whistle npm i -g whistle3、开启whistle 补充说明: ● w2 stop:关闭…

外贸网站建设步骤wordpress 视频自适应插件

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

网站软文发多了会影响WordPress背景图片自适应

一,PDF转Word的必要性 随着信息技术的飞速发展,文档的格式和转换成为了我们日常生活和工作中不可避免的一部分。其中,PDF转Word的需求尤为突出。PDF作为一种跨平台的文档格式,具有阅读效果好、不易被篡改等优点,但在编…

网站添加百度商桥石狮网站建设

学习transformer模型-用jupyter演示如何计算attention,不含multi-head attention,但包括权重矩阵W。 input embedding:文本嵌入 每个字符用长度为5的向量表示: 注意力公式: 1,准备Q K V: 先 生…

哪里有微信网站建设企业展厅设计公司北京vi设计

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

网站建站的标准wordpress 视频无广告

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt326 JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现这些功能需要I18N…

哈尔滨网站制作策划橙域名网站

转载于:https://www.cnblogs.com/SunWentao/archive/2008/06/20/1226975.html

php中英文网站模板华为通用软件开发工程师待遇

练习 1.总结二进制信号量和计数型信号量的区别,以及他们的使用场景。 二进制信号量:信号量的数值只有0和1(用于共享资源的访问) 计数性信号量:计数型信号量的值一般是大于或者等于2(生产者和消费者模型&am…

群晖ds218+做网站qq营销网站源码

文章目录 替换数字 54卡码网直接操作读取的[]byte 替换数字 54卡码网 本题为卡码网的54题,起为acm模式的答题 这里我们不在输入获得的[]byte类型上直接修改,而是保存在新建的[]byte上 golang小知识: 单引号’,表示byte类型或rune…

网站开发模板教程个人网站赏析

牙说:这篇论文是研究蚁群算法在能量有效路由协议的过程中必读的一篇文章,原是全英文,在这里按照自己的理解大致翻译成中文,好好学习,与君共勉。 论文题目:An Energy-Efficient Ant-Based Routing Algorith…

做网站学h5还是php网站建设公司是怎么找客户

前面一直都是使用命令行运行代码,不够人性化。这篇用Python编写一个GUI界面,使用PyQt5编写图像处理程序。包括:打开、关闭摄像头,捕获图片,读取本地图片,灰度化和Otsu自动阈值分割的功能。 使用Qt Designer…

牡丹江地区做网站的公司深圳我的网站

参考链接: Java在竞争性编程中的快速I/O 第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被…

互动网站设计与制作微信公众号开发需要什么技术

AttributeError: str object has no attribute decode h5py 安装 h5py2.10

昆明网站运营公司有哪些阿里云虚拟主机装WordPress

目录 一、关联式容器 1.1 树形结构的关联式容器 二、set 2.1 set的介绍 2.2 set的使用 2.2.1 set的构造 2.2.2 set的迭代器 2.2.3 set的容量函数 2.2.4 set的功能函数 2.2.5 set的使用举例 三、multiset 3.1 multiset的介绍 3.2 multiset的使用演示 四、map 4.1…