- 博客(14)
- 收藏
- 关注
原创 spark needsUnsafeRowConversion java.util.NoSuchElementException: None.get
spark版本 3.0.1在spark 中引入了一个bug,该bug的详细信息如下:None.getjava.util.NoSuchElementException: None.getscala.None$.get(Option.scala:529)scala.None$.get(Option.scala:527)org.apache.spark.sql.execution.FileSourceScanExec.needsUnsafeRowConversion$lzycompute(DataSo
2020-12-29 13:57:20 1337
原创 【spark系列5】spark 3.0.1集成delta 0.7.0原理解析--delta如何进行DDL DML操作以及Catalog plugin API
前提本文基于 spark 3.0.1delta 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表操作的,只能存储到文件中,也就是说他
2020-12-25 16:22:13 2388 7
原创 【spark系列4】spark 3.0.1集成delta 0.7.0原理解析--delta自定义sql
前提本文基于 spark 3.0.1delta 0.7.0我们都知道delta.io是一个给数据湖提供可靠性的开源存储层的软件,关于他的用处,可以参考Delta Lake,让你从复杂的Lambda架构中解放出来,于此类似的产品有hudi,Iceberg,因为delta无缝集成spark,所以我们来分析一下delta集成spark的内部原理以及框架,对于spark 3.x 与delta的集成是分两部分的,一部分是delta自定义的sql语法,另一部分是基于Catalog plugin API的DDL D
2020-12-24 16:49:02 1864 10
原创 【mlflow 系列8】向 mlflow 提交pr(pull request)
背景因为之前在帮助算法同事进行mlflow 模型调优的过程中,涉及到mlflow一项优化点,所以给mlflow提交了一个pr操作参照官网提供的python contributing,所以按照他的提示一步一步来就可以,但是在提交pr的过程中还是得注意几点,描述清楚问题进行单元测试进行代码格式化在代码格式化这个问题上,我就花了一天去搞定,因为之前不太熟悉python,所以有点着急(其实也是没有踏踏实实按照官网的操作来),导致花了一天的时间,在此记录一下过程写完代码后,进行black --
2020-12-22 12:59:01 178
原创 【mlflow系列7】flask VS Gunicorn
背景最近在测试mlflow性能的时候,发现了一个很奇怪的事情,我们知道mlflow是用(Gunicorn)[https://github.com/mlflow/mlflow/blob/master/mlflow/pyfunc/backend.py#L76] 启动服务的,按照道理说Gunicorn会比flask自带的服务性能会好,但是经过测试,恰好相反,而且并发量越大,两者的差别越大分析python中我们用的是版本 是flask 1.1.0 gunicorn 19.9.0就在百思不得其解的时候,必须拿
2020-12-18 11:07:53 339
原创 scala中的self =>
在scala的一些开源项目的源码中总是能看到类似self =>关键字,那这到底代表什么呢?在此,记录一下,仅作为笔记this 别名这种相当于给this起了一个别名self,这里的self可以换成其他的你自己喜欢的字符串,看一下spark的源码sparkSession的定义:class SparkSession private( @transient val sparkContext: SparkContext, @transient private val existingS
2020-12-10 10:47:02 474
原创 【openJDK系列3】java OOM 分析(mat工具的使用)
背景在java应用开发中 我们难免会遇到java stack和heap的分析,在此记录一下对于发生OOM时候,该怎么进行分析分析首先我们得会几个工具,jpsjmap -heapjmap -histo:livejmap -dump:format=b,file=dump.hprofmat(Memory Analyzer Tool)jps 用来看运行的应用是哪个pidjmap -heap 用来查看该应用堆内存总体分布情况jmap -histo:live 用来查看jmap -dum
2020-12-08 18:36:00 582
转载 【k8s系列6】Mirantis及时现身,接过Kubernetes dockershim支持大旗
关于dockershim即将灭亡的传言无疑存在严重夸大。如果一直有关注Kubernetes生态系统,很多朋友一时之间可能确实被Kubernetes 1.20版本的发布公告弄得有点不知所措。从公告内容来看,自1.20版本开始dockershim将被全面弃用。但请不要恐慌,调整呼吸,一切都会好起来。更重要的是,Mirantis现已同意与Docker开展合作,在Kubernetes之外独立维护shim代码并将其作为Docker Engine API的统一CRI接口。对于Mirantis客户而言,这意味着Dock
2020-12-07 09:53:39 195
转载 【k8s系列5】不必惊慌:聊聊Kubernetes与Docker
在1.20版本之后,Kubernetes将不再支持把Docker作为容器运行时使用。不必惊慌,实际上没多大影响。摘要:这里只是不建议将Docker作为底层运行时,你仍然可以使用专为Kubernetes创建的容器运行时接口(CRI)一如既往地在集群中运行Docker镜像。对于Kubernetes最终用户,此次调整同样不会有太大影响。Docker不会就此消亡,你也仍然可以继续将Docker作为开发工具使用。Docker会继续构建起不计其数的容器,而运行docker build命令所生成的镜像仍可在Kube
2020-12-07 09:52:46 100
转载 【openJDK系列2】云原生时代,Java危矣?
Java 诞生距今已有 25 年,但它仍然长期占据着“天下第一”编程语言的宝座。只是其统治地位并非坚不可摧,反倒可以说是危机四伏。云原生时代,Java 技术体系的许多前提假设都受到了挑战,目前已经有可预见的、足以威胁动摇其根基的潜在可能性正在酝酿。同时,像 Golang、Rust 这样的新生语言,以及 C、C++、C#、Python 等老对手也都对 Java 的市场份额虎视眈眈。面对危机,Java 正在尝试哪些变革?未来,Java 是会继续向前、再攀高峰,还是由盛转衰?在今天由极客邦科技举办的 QCon 全
2020-12-07 08:19:51 172
原创 【go系列5】golang中的通道
golang中的通道类型是一种特殊的类型, 类型名字为chan。在任何时候,同时只有一个goroutine访问通道进行并发和获取数据,goroutine间通过通道就可以进行通信。我们可以通过go关键字创建goroutine。通道本身是同步的,通道的发送和接受数据默认是同步的,且遵循先进先出的规则以保证数据发送的顺序。通道分为双向通道和单向通道。双向通道:chan1 := make(chan int, 10)单向通道:#单向只写通道,10 表示通道的容量chan2 := make(
2020-12-05 17:40:55 278
原创 【go系列4】golang 函数命名返回值
golang的函数返回值是可以命名的,且一个不带任何返回值的return语句,返回所有的命名返回值,如:package mainimport "fmt"func NameReturnDemo(count int) (x int, y int) { x = count * 4 / 9 y = count - x return}func main() { fmt.Println(NameReturnDemo(17))}# 运行go run demo.go7 10...
2020-12-04 10:15:31 271
原创 【go系列3】go 的包管理工具go modules的使用
背景由于之前写k8s operator在引入go的包的时候,涉及到go的包管理工具,因为自己写java已经很多年,maven的包管理工具很是好用,便想到golang是否也有类似的工具, goer都知道go的包引入带上github.com类似的前缀,就会自动从go的第三方检索服务pkg.go.dev下载对应的文件,而该检索服务会定期从github更新最新的代码。go mod 是golang 1.11版本引入的。相对于之前要么是没有包管理,要么是管理工具不好用使用查看golang的版本,确保在1
2020-12-03 16:35:33 212
原创 【spark系列3】spark 3.0.1 AQE(Adaptive Query Exection)分析
AQE简介从spark configuration,到在最早在spark 1.6版本就已经有了AQE;到了spark 2.x版本,intel大数据团队进行了相应的原型开发和实践;到了spark 3.0时代,Databricks和intel一起为社区贡献了新的AQEspark 3.0.1中的AQE的配置配置项默认值官方说明分析spark.sql.adaptive.enabledfalse是否开启自适应查询此处设置为true开启spark.sql.adaptive.co
2020-12-01 15:45:45 1262
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人