当前位置: 首页 > news >正文

Java常用API之Encoders类解读

写在开头:本文用于作者学习Java常用API

我将官方文档中Encoders类中所有API全测了一遍并打印了结果,日拱一卒,常看常新

在Spark中,Encoders类提供了一些静态方法用于创建不同数据类型的编码器。

首先,我遇到这样一个问题,就是:

Encoder<String> string = org.apache.spark.sql.Encoders.STRING();标黄的这个包必须得加,如果我不加,自动导包导得是 import org.apache.spark.network.protocol.Encoders;这个包

但是我需要org.apache.spark.sql.Encoders这个包的这个类,所以加了完整的类路径。下面是Encoders的API介绍

1. Encoders.STRING()

// 创建一个String类型的编码器

@Test// 创建一个String类型的编码器// 1. Encoders.STRING()public void test_STRING(){Encoder<String> string = org.apache.spark.sql.Encoders.STRING();System.out.println(string);//class[value[0]: string]System.out.println(string.schema());//StructType(StructField(value,StringType,true))}

2. Encoders.INT()

// 创建一个Integer类型的编码器

@Test// 创建一个Integer类型的编码器// 2. Encoders.INT()public void test_INT(){Encoder<Integer> anInt = org.apache.spark.sql.Encoders.INT();System.out.println(anInt);//class[value[0]: int]}


3. Encoders.bean(MyClass.class)

// 创建一个自定义类的编码器,其中MyClass是自定义类的类名

@Test// 创建一个自定义类的编码器,其中MyClass是自定义类的类名// 3. Encoders.bean(MyClass.class)public void test_bean(){Encoder<MyClass> myClassEncoder = org.apache.spark.sql.Encoders.bean(MyClass.class);System.out.println(myClassEncoder.clsTag());//com.atguigu.sparksql.MyClassSystem.out.println(myClassEncoder.schema());//StructType()}

4. Encoders.kryo(MyClass.class)

// 创建一个使用Kryo序列化的自定义类的编码器

@Test// 创建一个使用Kryo序列化的自定义类的编码器// 4. Encoders.kryo(MyClass.class)public void test_kryo(){Encoder<MyClass> kryo = org.apache.spark.sql.Encoders.kryo(MyClass.class);System.out.println(kryo);//class[value[0]: binary]System.out.println(kryo.schema());//StructType(StructField(value,BinaryType,true))System.out.println(kryo.clsTag());//com.atguigu.sparksql.MyClass}

5. Encoders.tuple(Encoders.INT(), Encoders.STRING())

// 创建一个元组编码器,用于将多个数据类型组合成一个元组

@Test// 创建一个元组编码器,用于将多个数据类型组合成一个元组// 5. Encoders.tuple(Encoders.INT(), Encoders.STRING())public void test_tuple(){Encoder<Tuple2<Integer, String>> tupleEncoder = org.apache.spark.sql.Encoders.tuple(org.apache.spark.sql.Encoders.INT(), org.apache.spark.sql.Encoders.STRING());System.out.println(tupleEncoder);//class[_1[0]: int, _2[0]: string]System.out.println(tupleEncoder.clsTag());//scala.Tuple2System.out.println(tupleEncoder.schema());//StructType(StructField(_1,IntegerType,true),StructField(_2,StringType,true))}

相关文章:

Java常用API之Encoders类解读

写在开头&#xff1a;本文用于作者学习Java常用API 我将官方文档中Encoders类中所有API全测了一遍并打印了结果&#xff0c;日拱一卒&#xff0c;常看常新 在Spark中&#xff0c;Encoders类提供了一些静态方法用于创建不同数据类型的编码器。 首先&#xff0c;我遇到这样一个…...

java中大型医院HIS系统源码 Angular+Nginx+SpringBoot云HIS运维平台源码

java中大型医院HIS系统源码 AngularNginxSpringBoot云HIS运维平台源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工…...

windows部署Jenkins并远程部署tomcat

目录 1、Jenkins官网下载Jenkins 2、安装Jenkins 3、修改Home directory 4、插件安装及系统配置 5、Tomcat安装及配置 5.1、修改配置文件,屏蔽以下代码 5.2、新增登录用户 5.3、编码格式修改 5.4、启动tomcat 6、Jenkins远程部署war包 6.1、General配置 6.2、Sourc…...

设计模式|责任链模式(Chain of Responsibility Pattern)

文章目录 结构优点缺点使用责任链的步骤示例有哪些知名框架采用了责任链模式责任链模式和链表有什么关联常见面试题 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你创建一个对象链。请求将沿着这个链传递&#xff…...

文件服务器之二:SAMBA服务器

文章目录 什么是SAMBASAMBA的发展历史与名称的由来SAMBA常见的应用 SAMBA服务器基础配置配置共享资源Windows挂载共享Linux挂载共享 什么是SAMBA 下图来自百度百科 SAMBA的发展历史与名称的由来 Samba是一款开源的文件共享软件&#xff0c;它基于SMB&#xff08;Server Messa…...

20.安全性测试与评估

每年都会涉及&#xff1b;可能会考大题&#xff1b;多记&#xff01;&#xff01;&#xff01; 典型考点&#xff1a;sql注入、xss&#xff1b; 从2个方面记&#xff1a; 1、测试对象的功能、性能&#xff1b; 2、相关设备的工作原理&#xff1b; 如防火墙&#xff0c;要了解防…...

阿里巴巴实习面经

本人bg&#xff1a;浙江大学&#xff0c;计算机研二&#xff0c;本科也是浙大计算机专业的。 在阿里巴巴达摩院实习&#xff0c;算法岗&#xff0c;我是去年拿到的阿里巴巴达摩院的实习offer&#xff0c;这个过程还是比较惊心动魄&#xff0c;所以我称之为惊心动魄版本&#xf…...

javaweb学习(day11-监听器Listener过滤器Filter)

一、监听器Listener 1 Listener介绍 Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是&#xff1a;Servlet 程 序、Listener 监听器、Filter 过滤器 Listener 是 JavaEE 的规范&#xff0c;就是接口 监听器的作用是&#xff0c;监听某种变化(一般就是对…...

教你快速认识Java中的抽象类和接口

目录 引言 抽象类&#xff08;Abstract Class&#xff09; 抽象类的概念 抽象类的图标 抽象类的语法 抽象类的特点 接口&#xff08;Interface&#xff09; 接口的概念 接口的图标 接口的语法 接口的特点 接口的使用 接口的意义 抽象类与接口的区别 Object类 结…...

Linux第5课 Linux目录介绍

文章目录 Linux第5课 Linux目录介绍一、打开系统目录二、查看系统目录 Linux第5课 Linux目录介绍 系统目录就是指操作系统的主要文件存放的目录&#xff0c;目录中的文件直接影响到系统是否正常工作&#xff0c;了解这些目录的功能&#xff0c;对使用系统会有很大的帮助。 一…...

GitHub要求2FA?不慌,有它(神锁离线版)帮你!

GitHub宣布&#xff0c;到 2023 年底&#xff0c;所有用户都必须要启用双因素身份验证 (2FA)&#xff0c;不能只用密码啦。 说实话&#xff0c;听到这消息小编是非常高兴的。 正如GitHub的首席安全官Mike Hanley所说&#xff0c;软件供应链是从开发者开始的&#xff0c;保护开…...

C语言第四十弹---预处理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…...

SYS-2722音频分析仪SYS2722

181/2461/8938产品概述&#xff1a; Audio Precision 2722 音频分析仪是 Audio Precision 屡获殊荣的 PC 控制音频分析仪的旗舰型号&#xff0c;长期以来一直是音频设备设计和测试的全球公认标准。功能齐全的 SYS-2722 提供了测试转换器技术最新进展所需的无与伦比的失真和噪声…...

下载页面上的视频

引言&#xff1a;有些页面上的视频可以直接右键另存为或者F12检索元素找到视频地址打开后保存&#xff0c;但有些视频页面是转码后的视频&#xff0c;不能直接另存为视频格式&#xff0c;可以参考下本方法 以该页面视频为例&#xff1a;加载中...点击查看详情https://wx.vzan.c…...

静态路由协议实验综合实验

需求&#xff1a; 1、除R5的换回地址已固定外&#xff0c;整个其他所有的网段基于192.168.1.0/24进行合理的IP地址划分。 2、R1-R4每台路由器存在两个环回接口&#xff0c;用于模拟连接PC的网段&#xff1b;地址也在192.168.1.0/24这个网络范围内。 3、R1-R4上不能直接编写到…...

qt MVC软件设计模式

在Qt中使用MVC&#xff08;Model-View-Controller&#xff09;软件设计模式可以帮助你将数据模型、用户界面和控制逻辑有效地分离&#xff0c;从而使得代码更清晰&#xff0c;更易于维护和扩展。以下是在Qt中使用MVC模式的一般思路&#xff1a; Model&#xff08;模型&#xff…...

代码随想录刷题随记15-二叉树回溯

代码随想录刷题随记15-二叉树回溯 110.平衡二叉树 leetcode链接 一棵高度平衡二叉树定义为&#xff1a;一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 求深度和求高度的区别&#xff1a; 求深度可以从上到下去查 所以需要前序遍历&#xff08;中左右&#xff…...

基于SpringBoot Vue养老院管理

一、&#x1f4dd;功能介绍 基于SpringBoot Vue养老院管理 角色&#xff1a;管理员、企业、老人子女、老人 管理员&#xff1a;管理员登录进入养老院管理系统可以对系统首页、个人中心、服务人员管理、老人管理、老人子女管理、老人档案管理、社区活动管理、活动记录管理、床…...

盘点编程方法论中的一些思想

背景 在日常编程开发中&#xff0c;虽然不同公司&#xff0c;业务不同&#xff0c;语言不同&#xff0c;但是工作久了&#xff0c;我们会发现一些编程思想几乎是不变的。这些编程思想&#xff0c;往往来自于大量实际问题场景的方法总结&#xff0c;可以很好的应对某一类问题。如…...

通过电机转速计算主轴旋转单圈所需时间(CODESYS ST代码)

1、伺服丝杠系统常用算法功能块 伺服丝杠系统常用算法功能块-CSDN博客文章浏览阅读353次。这篇博客主要介绍伺服、丝杠系统常用的运算功能块,其它相关运算可以查看下面文章链接:信捷PLC脉冲频率、位移、转速相关计算(C语言编程应用)_RXXW_Dor的博客-CSDN博客。https://rxxw-…...

从实验室小白到跑通第一个模型:我的DeepLabCut安装踩坑全记录(Windows 11 + RTX 4060)

从实验室小白到跑通第一个模型&#xff1a;我的DeepLabCut安装踩坑全记录&#xff08;Windows 11 RTX 4060&#xff09; 去年刚进实验室时&#xff0c;导师扔给我一篇Nature Methods论文说"试试这个工具"&#xff0c;从此开始了与DeepLabCut的"相爱相杀"。…...

别只盯着YOLOv5了!从R-CNN到DETR:手把手带你看懂目标检测算法演进史(附论文精读笔记)

从R-CNN到DETR&#xff1a;目标检测算法的范式革命与技术演进 当计算机视觉领域的研究者翻开2023年的顶会论文时&#xff0c;会发现目标检测任务已经呈现出与五年前截然不同的技术图景。这个看似"古老"的计算机视觉基础任务&#xff0c;正在经历着从传统卷积到Transf…...

第八部分-企业级实践——36. CI/CD 集成

36. CI/CD 集成 1. CI/CD 概述 CI/CD&#xff08;持续集成/持续部署&#xff09;与 Docker 结合&#xff0c;可以实现代码提交后自动构建镜像、测试、部署的完整流程&#xff0c;大幅提升开发效率和发布质量。 ┌──────────────────────────────…...

声明式数据转换利器:Refiner 实战指南与架构集成

1. 项目概述与核心价值最近在折腾一个老项目的数据清洗和转换&#xff0c;被一堆格式混乱、结构不一的JSON文件搞得焦头烂额。手动写脚本处理吧&#xff0c;每次需求一变就得重写&#xff0c;维护成本太高&#xff1b;用现成的ETL工具吧&#xff0c;又觉得过于笨重&#xff0c;…...

TrguiNG汉化版:三招彻底改变你的Transmission远程管理体验

TrguiNG汉化版&#xff1a;三招彻底改变你的Transmission远程管理体验 【免费下载链接】TrguiNG Transmission WebUI 基于 openscopeproject/TrguiNG 汉化和改进 项目地址: https://gitcode.com/gh_mirrors/tr/TrguiNG 你是否还在忍受Transmission原生的简陋Web界面&…...

SBQE:量子机器学习数据编码的创新方法

1. SBQE&#xff1a;量子机器学习数据编码的新范式量子计算领域最近迎来了一项突破性进展——SBQE&#xff08;Shot-Based Quantum Encoding&#xff09;数据编码方法。作为一名长期跟踪量子机器学习发展的研究者&#xff0c;我亲历了这项技术从理论提出到实验验证的全过程。SB…...

基于YOLOv11与Moondream VLM的本地化实时鸟类检测识别系统实践

1. 项目概述&#xff1a;打造一个本地化的实时鸟类观测站 如果你和我一样&#xff0c;喜欢在自家后院、阳台或者喂食器旁观察鸟类&#xff0c;但又不想一直守在窗边&#xff0c;或者希望记录下那些稍纵即逝的访客&#xff0c;那么这个项目可能就是为你准备的。我最近基于 YOLO…...

不只是显示中文:用fbterm给你的CentOS终端换个‘皮肤’,提升老旧服务器运维效率

终端美学革命&#xff1a;用fbterm打造高效CentOS字符界面工作环境 在服务器运维的世界里&#xff0c;图形界面往往被视为奢侈品。当您面对一台资源受限的老旧CentOS服务器&#xff0c;或者需要远程管理没有X11支持的机器时&#xff0c;字符界面就成了唯一的选择。但单调的终端…...

Go语言构建高效命令行工具集:claworc项目架构解析与实战应用

1. 项目概述&#xff1a;一个为开发者赋能的命令行工具集 最近在GitHub上闲逛&#xff0c;发现了一个名为 gluk-w/claworc 的项目。乍一看这个标题&#xff0c;有点摸不着头脑&#xff0c; claworc 听起来像是个自造词&#xff0c;结合 gluk-w 这个用户名&#xff0c;感觉…...

3大技术创新:重新定义Windows Android生态的工具体验

3大技术创新&#xff1a;重新定义Windows Android生态的工具体验 【免费下载链接】wsa-toolbox A Windows 11 application to easily install and use the Windows Subsystem For Android™ package on your computer. 项目地址: https://gitcode.com/gh_mirrors/ws/wsa-tool…...