delegate

【spark系列5】spark 3.0.1集成delta 0.7.0原理解析--delta如何进行DDL DML操作以及Catalog plugin API

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-25 16:37:17
前提 本文基于 spark 3.0.1 delta 0.7.0 我们都知道delta.io是一个给数据湖提供可靠性的开源存储层的软件,关于他的用处,可以参考 Delta Lake,让你从复杂的Lambda架构中解放出来 ,上篇文章我们分析了 delta是如何自定义自己的sql ,这篇文章我们分析一下delta数据是如何基于Catalog plugin API进行DDL DML sql操作的(spark 3.x以前是不支持的) 分析 delta在0.7.0以前是不能够进行save表操作的,只能存储到文件中,也就是说他的元数据是和spark的其他元数据是分开的,delta是独立存在的,也是不能和其他表进行关联操作的,只有到了delta 0.7.0版本以后,才真正意义上和spark进行了集成,这也得益于spark 3.x的Catalog plugin API 特性。 还是先从delta的 configurate sparksession 入手,如下: import org.apache.spark.sql.SparkSession val spark = SparkSession .builder() .appName("...") .master("...") .config("spark.sql.extensions", "io.delta.sql

ios原生项目内嵌u3d工程

房东的猫 提交于 2020-12-24 08:23:29
本文一反常态, 目标是把u3d工程以framewWork形式 内嵌原生IOS项目 1、xcode中新建Cocoa Touch FrameWork。取名u3dFrameWork 2、把u3d导出的xcode中,Class、Library 拷贝到u3dFrameWork 中 采用 方式引入 从library中移除掉libil2cpp 3 以下头文件移动到public 4、Build Phases 下头文件引用中 移除RegisterMonoModules.h compile sources 中移除main.mm 和RegisterMonoModules.cpp 5、配置修改 Build Settings -> Header Search Paths: $(inherited) "$(SRCROOT)/Classes" "$(SRCROOT)" $(SRCROOT)/Classes/Native $(SRCROOT)/Libraries/bdwgc/include $(SRCROOT)/Libraries/libil2cpp/include Build Settings -> Library Search Paths: $(inherited) "$(SRCROOT)" "$(SRCROOT)/Libraries" Build Settings -> Prefix Header:

oc项目中使用swift

旧街凉风 提交于 2020-12-24 07:31:34
一、为什么写这篇文章 我们整个移动开发团队都在从老的语言向新的语言过度,Android团队所有项目都在使用Kotlin开发了,但是iOS团队还在使用OC开发项目。团队负责人也已经发话了,iOS端从下个新项目开始都要使用swift开发了,对于基本没怎么使用过swift的同学来说,马上用新语言开发项目还是有一定难度、有一定风险的。从OC和swift混编开始,从OC向swift逐渐熟悉过度,是最佳选择,积累的经验,降低了难度,也降低了风险! 二、Swift目前现状 苹果在WWDC2014正式发布Swift,目的是用于替代OC语言。在之后的时间里经历了标准库变动,语法的增减,特性变动,几乎每一年 Swift 都会迎来比较大的改动,甚至 API 都发生了变化,让很多第一批吃螃蟹的开发者苦不堪言,戏称《Swift 从入门到重学》。如今已是2020年了,经过 6 年多的不断迭代更新,WWDC2019苹果发布了Swift5.0,苹果终于宣布了Swift的稳定。这标志着Swift这门语言已经趋于稳定,语法已经不会再大变,已经有越来越多的个人和公司在使用Swift,现在也到了重拾Swift的时候了。 三、本篇文章主要内容 1、在OC工程中配置swift需要的基本环境 2、oc和swift页面相互跳转,oc和swift属性相互调用,oc和swift方法相互调用

jQuery事件

≡放荡痞女 提交于 2020-12-19 06:52:02
1. 事件绑定(2种): * eventName(function(){}) 绑定对应事件名的监听, 例如:$('#div').click(function(){}); * on(eventName, funcion(){}) 通用的绑定事件监听, 例如:$('#div').on('click', function(){}) * 优缺点: eventName: 编码方便, 但只能加一个监听, 且有的事件监听不支持 on: 编码不方便, 可以添加多个监听, 且更通用 2. 事件解绑: * off(eventName) 3. 事件的坐标 * event.clientX, event.clientY 相对于视口的左上角 * event.pageX, event.pageY 相对于页面的左上角 * event.offsetX, event.offsetY 相对于事件元素左上角 4. 事件相关处理 * 停止事件冒泡 : event.stopPropagation() * 阻止事件默认行为 : event.preventDefault() ///////////////////////////练习///////////////////////////////////////////////////////////// //1. 给.out绑定点击监听(用两种方法绑定) /*$('.out')

iOS的KVO实现原理

我只是一个虾纸丫 提交于 2020-12-19 05:56:49
原文地址: https://www.cnblogs.com/azuo/p/5442319.html iOS--KVO的实现原理与具体应用 本文分为2个部分: 概念 与 应用 。 概念部分旨在剖析KVO这一设计模式的实现原理,应用部分通过创建的项目,以说明KVO技术在iOS开发中所带来的作用; 如果是作为是刚接触KVO的初学者,可以在了解 基本原理 后粗略看几遍 底层实现原理 ,再认真阅读第二部分的应用内容“学会” 怎么去使用KVO ,往后再慢慢深入了解KVO这一“黑魔法”技术的实现原理。 【 本次开发环境: Xcode:7.2 iOS Simulator:iphone6 By:啊左 本文D emo下载链接: KVO演示Demo 】 ---------------------------------------------------------概念--------------------------------------------------------- 一、KVO是什么? KVO 是 Objective-C 对 观察者设计模式 的一种实现。【另外一种是:通知机制(notification),详情参考: iOS 趣谈设计模式——通知 】; KVO提供一种机制,指定一个被观察对象(例如A类),当对象某个属性(例如A中的字符串name)发生更改时,对象会获得通知,并作出相应处理;

前端必知必会之 JS 单线程与异步

半腔热情 提交于 2020-12-18 07:48:38
https://juejin.im/post/5e55272e6fb9a07ca453436f 已知,JavaScript 是单线程的,天生异步,适合 IO 密集型,不适合 CPU 密集型,但是,为什么是异步的喃,异步由何而来的喃,我们将在这里逐渐讨论实现。 一、进程与线程 1. 浏览器是多进程的 它主要包括以下进程: Browser 进程:浏览器的主进程,唯一,负责创建和销毁其它进程、网络资源的下载与管理、浏览器界面的展示、前进后退等。 GPU 进程:用于 3D 绘制等,最多一个。 第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建。 浏览器渲染进程(浏览器内核):内部是多线程的,每打开一个新网页就会创建一个进程,主要用于页面渲染,脚本执行,事件处理等。 2. 渲染进程(浏览器内核) 浏览器的渲染进程是多线程的,页面的渲染,JavaScript 的执行,事件的循环,都在这个进程内进行: GUI 渲染线程:负责渲染浏览器界面,当界面需要重绘(Repaint)或由于某种操作引发回流(Reflow)时,该线程就会执行。 JavaScript 引擎线程:也称为 JavaScript 内核,负责处理 Javascript 脚本程序、解析 Javascript 脚本、运行代码等。(例如 V8 引擎) 事件触发线程:用来控制浏览器事件循环,注意这不归 JavaScript

前端必知必会之 JS 单线程与异步

我们两清 提交于 2020-12-18 07:48:27
https://juejin.im/post/5e55272e6fb9a07ca453436f 已知,JavaScript 是单线程的,天生异步,适合 IO 密集型,不适合 CPU 密集型,但是,为什么是异步的喃,异步由何而来的喃,我们将在这里逐渐讨论实现。 一、进程与线程 1. 浏览器是多进程的 它主要包括以下进程: Browser 进程:浏览器的主进程,唯一,负责创建和销毁其它进程、网络资源的下载与管理、浏览器界面的展示、前进后退等。 GPU 进程:用于 3D 绘制等,最多一个。 第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建。 浏览器渲染进程(浏览器内核):内部是多线程的,每打开一个新网页就会创建一个进程,主要用于页面渲染,脚本执行,事件处理等。 2. 渲染进程(浏览器内核) 浏览器的渲染进程是多线程的,页面的渲染,JavaScript 的执行,事件的循环,都在这个进程内进行: GUI 渲染线程:负责渲染浏览器界面,当界面需要重绘(Repaint)或由于某种操作引发回流(Reflow)时,该线程就会执行。 JavaScript 引擎线程:也称为 JavaScript 内核,负责处理 Javascript 脚本程序、解析 Javascript 脚本、运行代码等。(例如 V8 引擎) 事件触发线程:用来控制浏览器事件循环,注意这不归 JavaScript

Spring源码系列 — BeanDefinition扩展点

有些话、适合烂在心里 提交于 2020-12-18 03:25:56
前言 前文介绍了Spring Bean的生命周期,也算是XML IOC系列的完结。但是Spring的博大精深,还有很多盲点需要摸索。整合前面的系列文章,从Resource到BeanDefinition,再到容器扩展点,最后到Bean创键,这个过程中无处不存在Spring预留的扩展口。 本篇文章介绍Spring的另一种扩展点:BeanDefinition扩展点,该扩展点是为处理BeanDefinition而设计。本文主要从以下几点分析: BeanDefinition扩展点的几种方式 BeanDefinition扩展点实战 BeanDefinition扩展点的原理 BeanDefinition扩展点的几种方式 Spring中针对向上下文中添加BeanDefinition、修改上下文中的BeanDefinition可谓是提供了丰富的扩展点。既有针对XML配置的,又有针对注解配置的Bean,甚至还有自定义XML标签的。这里总结了,共有以下几种方式: BeanDefinitionRegistryPostProcessor方式 BeanFactoryPostProcessor方式 ImportBeanDefinitionRegistrar方式 BeanDefinitionParser方式 BeanDefinitionRegistryPostProcessor方式 从命名上也可以看出一些端倪

unity帧同步游戏极简框架及实例(附客户端服务器源码)

别等时光非礼了梦想. 提交于 2020-12-17 08:53:10
阅前提示: 此框架为有帧同步需求的游戏做一个简单的示例,实现了一个精简的框架,本文着重讲解帧同步游戏开发过程中需要注意的各种要点,伴随框架自带了一个小的塔防sample作为演示. [TOC] #哪些游戏需要使用帧同步 如果游戏中有如下需求,那这个游戏的开发框架应该使用帧同步: <li>多人实时对战游戏</li> <li>游戏中需要战斗回放功能</li> <li>游戏中需要加速功能</li> <li>需要服务器同步逻辑校验防止作弊</li> LockStep框架就是为了上面几种情况而设计的. #如何实现一个可行的帧同步框架 主要确保以下三点来保证帧同步的准确性: <li>可靠稳定的帧同步基础算法</li> <li>消除浮点数带来的精度误差</li> <li>控制好随机数</li> ##<font size = 5>帧同步原理</font> 相同的输入 + 相同的时机 = 相同的显示 客户端接受的输入是相同的,执行的逻辑帧也是一样的,那么每次得到的结果肯定也是同步一致的。为了让运行结果不与硬件运行速度快慢相关联,则不能用现实历经的时间(Time.deltaTime)作为差值阀值进行计算,而是使用固定的时间片段来作为阀值,这样无论两帧之间的真实时间间隔是多少,游戏逻辑执行的次数是恒定的,举例: 我们预设每个逻辑帧的时间跨度是1秒钟,那么当物理时间经过10秒后,逻辑便会运行10次

Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

和自甴很熟 提交于 2020-12-17 08:28:45
继续前面的章节,这里我介绍下注解,其实Java注解跟.NetCore的特性标签类似,下面我们通过代码来说明 Java自定义注解 首先我先说下Java注解需要使用的注解 @Target(value = ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented Taget:指定注解在什么地方生效,作用于什么对象上,参数很多这里把源码拉出来了,每一个的意思就不过多介绍,一看就明白 public enum ElementType { /** 类、接口(包括注释类型)或枚举声明 */ TYPE, /** 字段声明(包括枚举常量) */ FIELD, /** 方法声明 */ METHOD, /** 形式参数声明 */ PARAMETER, /** 构造函数声明 */ CONSTRUCTOR, /** 局部变量声明 */ LOCAL_VARIABLE, /** 注释类型声明 */ ANNOTATION_TYPE, /** 程序包声明 */ PACKAGE, /** * 类型参数声明 * * @since 1.8 */ TYPE_PARAMETER, /** * 使用类型 * * @since 1.8 */ TYPE_USE } public enum RetentionPolicy { /** 注解将被编译器丢弃 */