- 博客(332)
- 资源 (14)
- 问答 (4)
- 收藏
- 关注
转载 理解Pandas的Transform
Pandas具有丰富的功能让我们探索,transform就是其中之一,利用它可以高效地汇总数据。Python Data Science Handbook 是一个关于pandas的优秀资源。在该书的描述中,transform是与groupby(pandas中最有用的操作之一)组合使用的。一般情况下,我们在groupby之后使用aggregate, filter 或 apply来汇总数据,transform可能稍难理解。该书对应的github资源 jupyter notebooks里的内容可能对理解tr.
2022-04-06 15:33:05
2855
原创 BroadcastNestedLoopJoin和禁不掉的广播
先来看一个普通的Left Joinimport org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.functions.broadcastcase class People(id: Int, name: String)case class Student(sid: Int, sname: String)object TestBroadcastNestedLoopJoin3 { def main(args: Arr
2021-10-19 14:50:21
4643
原创 使用explain来分析broadcast
最近发现一个问题,可以看到有DataFrame被广播,但不知道是左边还是右边,试图通过执行计划来判断哪个数据源被广播。准备数据import org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.functions.broadcastcase class People(id: Int, name: String)case class Student(sid: Int, sname: String)object Broadca
2021-10-19 11:08:36
558
翻译 通过可视化图了解您的 Spark 应用程序
过去,Apache Spark UI 在帮助用户调试应用程序方面发挥了重要作用。在最新的 Spark 1.4 版本中,我们很高兴地宣布数据可视化浪潮已经进入 Spark UI。此版本中新增的可视化功能包括三个主要组件:Spark 事件的时间线视图执行 DAGSpark Streaming 统计数据的可视化这篇博文将是由两部分组成的系列文章中的第一篇。这篇文章将涵盖前两个组成部分,并将最后一个部分保存到下一周的后续文章中。Spark 事件的时间线视图自 Spark 的早期版本以来,Spark
2021-10-12 23:03:59
942
翻译 使用explain来分析Spark应用
理解Spark的执行计划对Spark调优是非常重要的。Spark提供了一个explain API去查看Spark SQL查询的执行计划。在这篇文章中我会展示给你如何使用explain去获取执行计划以至于你可以调试和分析你的Spark应用。explain在Dateset上是可用的。你可以用它在Spark 查询真正运行之前就知道Spark的执行计划。当然,Spark也提供了UI,你可以通过UI去看Spark的执行计划以及其它细节当Spark 应用正在运行的时候。并且你可以配置Spark History Serv
2021-09-18 11:45:07
2378
原创 Spark的spark-*和blockmgr-*目录里是什东西,怎么来的
blockmgr-*blockmgr-* 是谁创建的grep blockmgr-83325444-bc05-491e-8db4-752c5b282d0a stderr21/09/01 11:17:15 INFO storage.DiskBlockManager: Created local directory at /var/tmp/mesos/slaves/2a06b6b8-3000-40f9-9008-51caaef53399-S1/frameworks/2a06b6b8-3000-40f9-9
2021-09-01 10:40:41
2334
原创 Spark Event Log (三) ListenerBus
Event 流程图#mermaid-svg-3ItgqGclvxJ8Gevm .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-3ItgqGclvxJ8Gevm .label text{fill:#333}#mermaid-svg-3ItgqGclvxJ8Gevm .node rect,#mermaid-svg-
2021-08-31 18:27:25
291
原创 Spark Event Log (二) 开始和结束
Spark Event Log Start上一节已经看过操作Spaek Event Log的类是org.apache.spark.scheduler.EventLoggingListener,现在来分析一下start()方法 /** * Creates the log file in the configured log directory. */ def start() { if (!fileSystem.getFileStatus(new Path(logBaseDir))
2021-08-25 18:46:35
1339
原创 Spark Event Log (一)概述
这里写自定义目录标题什么是Spark Event Log为什么需要Spark Event Log如何开启Spark Event LogSpark Event Log张什么样子简单分析Spark Event LogSpark Event Log在History Server显示是什么样的是谁在写Event Log参考什么是Spark Event LogSpark Event Log是Spark内部主要的事件日志。比如Spark Application什么时候启动,什么时候关闭,什么时候Task开始,什么时
2021-08-23 18:39:02
3235
原创 Markdown模版
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-08-23 17:29:16
458
原创 Jupyter Notebook 添加kernel
我本地的环境是conda 4.9.2, 基于python3的版本。默认有一个base的环境,安装了juoyter notebook就默认有一个python3的kernel查看kernel:(base) darren.zhang$ jupyter kernelspec listAvailable kernels: python3 /Users/darren.zhang/Library/Jupyter/kernels/python3添加一个python2.
2021-08-18 18:53:14
767
转载 ls 命令显示的total是什么意思
今天我无意间在用ls命令的时候发现显示的内容里的total,这个total代表着什么,引起了我的疑惑。接下来开始解开它的神秘面纱。total后面的数字是指当前目录下所有文件所占用的空间总和,它是怎么计算的,我们先来看看每个文件的大小。(文件的单位是bytes)我们将所有的文件大小加起来也只有3536bytes ,是远远没有24kbytes的啊。但是我们需要知道的是每个文件系统都规定的一个块(block)的大小,我们可以通过命令getconf PAGESIZE 命令来查看数据块规定的大
2021-07-15 10:06:09
3707
转载 Python 程序打包成egg或whl安装包
环境准备:conda create -n testconda activate testconda install python=3.7.0安装完毕,确认版本信息:准备测试目录和文件mkdir test_setupcd test_setuptouch setup.py问题:为什么要准备setup.py?setup.py其实是python工具包distutils的配置文件,setuptools就是基于distutils来做的。在setup.py中通过setup函数来配置
2021-07-01 10:41:29
2107
原创 Python 代码检查之Pylint
Pylint是什么pylint是一个python代码检查工具Pylint能干什么这里列出了很多,单是我想前三种应该是最有用的检查python代码符不符合PEP8规范 检查代码中的错误 提供重构建议下面就用一个例子来展开说明如何安装pip install pylint如何使用pylint python file# orpylint python package例子:import logginglogging.basicConfig(le
2021-03-31 18:15:21
7758
1
原创 Python 反射
这篇文章是参考别人写的,自己找了些例子联系了一下。首先说动态导入模块:正常引用Server类应该怎么写呢?from module.blog.server import Server如果我知道可Server类的全路径,通过字符串去动态导入Server类该怎么实现呢?这个在上一节Python 反射实现class.forName功能已经说过了。反射机制:其实,反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查
2021-03-18 22:56:10
354
原创 Python 反射实现class.forName功能
我有一个类,需要通过配置文件来创建对象,测试类如下:那么全路径就是:lib.utils.test.Test代码如下:class Test(object): def __init__(self, name=1, age=1, **kwargs): self.name = name self.age = age def get_name(self): return self.name def get_age(se
2021-03-17 22:35:13
553
1
原创 Git Debug
export GIT_TRACE=1export GIT_CURL_VERBOSE=1执行上述两条命令可以在使用git的时候显示debug信息。参考:https://stackoverflow.com/questions/6178401/how-can-i-debug-git-git-shell-related-problems
2021-01-04 16:50:03
1222
原创 Spark Error pyspark.sql.utils.ParseException: “\nmismatched input ‘FROM‘ expecting
代码片段:data = spark.sql(f""" SELECT p.skuseq , p.name , p.enabled FROM base_promotion p WHERE p.enabled is TRUE""")错误信息:py4j.protocol.Py4JJavaError: An error occurred while calling o24.sql.: org.apach
2020-12-01 10:31:31
13318
转载 EC2 Linux添加硬盘
在AWS的EC2 Linux 环境里面添加硬盘Volume和在Vmware的虚拟机里面的操作基本一样,除了AWS和Vmware的操作界面不同,linux环境的命令基本是一模一样的。基本步骤如下:创建Volume,Attach到虚拟机上,然后在虚拟机里面进行扫描,格式化磁盘,mount到某个文件夹下面,更改fstab文件以便开机自动加载。创建Volume点击 Create Volume 就出现了创建向导。EBS里面有3种 SSD就是最常见的适合中小规模的; Provisioned IOPS
2020-10-15 18:31:49
761
原创 Ububtu 18.04 安装mesos 1.7.0
一、安装JDKsudo apt install openjdk-8-jdk -yexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64二、安装依赖包sudo apt -y install build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev zlib1g-dev三、下载mesos下载地
2020-08-27 21:36:34
716
原创 Spark PIVOT & UNPIVOT, 行转列和列转行
测试数据name course score Darren Chinese 71 Darren Math 81 Darren English 91 Jonathan Chinese 72 Jonathan Math 82 Jonathan English 92 Tom Chinese 73 行转列语法SELECT xxxFROM table_test
2020-05-29 17:47:35
2651
1
原创 Anaconda 安装R环境,安装Package和配置镜像,R语言Helloworld程序
在安装之前,先检查一下本地的环境有哪些:接着创建一个R环境:然后切换到新建的r环境:conda activate r接着安装r:conda install r过程大概如下:过程中遇到一些问题:有些安装包由于网络问题不能下载完全,如下所示:对于这个问题,只需要再针对这些包单独安装即可:例如:conda install r-base...
2020-02-24 17:16:23
29292
4
原创 Cloudera Hadoop 集群安装(三台机器)
简述:Hadoop的安装对环境有比较高的要求,需要比较大的内存,一般的机器很难满足,一个人也很难有两三台独立的主机,所以只能选择使用安装虚拟机的方式安装,但是主机的内存需要在8G以上。如果小于8G可以扩展内存后再做尝试。 公司使用的hadoop一般都不是apache下的hadoop,而是cloudera公司的hadoop,因为它除了提供hadoop外还提供了集成工具,所以,今天也
2020-02-19 16:28:46
7452
1
转载 Javascript This.作用域.闭包
JavaScript是个有点神奇的语言,不过它的一些独有的特性往往让我们初学者感到费解。This是Javascript语言的一个关键词。不过它到底是指什么呢?很多人都会认为this指的是当前对象。当然,这样理解是没错的,但是在有些情况下仍然会有些问题。在此,我搜集了一些资料,重新学习并整理一下,希望能借此来更好的理解this在JS中的工作方式和使用方法。vartest =fun
2020-02-19 16:23:04
1657
转载 MAPE(Mean Absolute Percentage Error)和WMAPE有何不同,为什么用WMAPE来评估销量预测
MAPE(Mean Absolute Percentage Error)是用来做销量预测最常用的指标,在实际的线上线下销量预测中有着非常重要的评估意义。但是在实际的项目过程中发现,有些时候的指标并不能非常好的表示模型拟合的效果,因此对这部分进行了深入分析,发现有更优化的评价指标来度量销量预测问题。MAPE公式如下:分别为真实值和预测值。但是,这个指标存在两个问题:...
2020-02-18 14:20:37
18105
2
转载 python with as的用法
With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。如果不用with语句,代码如下:file = open("/tmp/foo.txt")data = file.read()file.close()这里有两个...
2019-12-26 16:38:12
484
转载 Thread类中的join()方法原理
join()是Thread类的一个方法。根据jdk文档的定义:public final void join()throws InterruptedException: Waits for this thread to die.join()方法的作用,是等待这个线程结束;但显然,这样的定义并不清晰。个人认为”Java 7 Concurrency Cookbook”的定义较为清晰:j...
2019-11-14 16:36:21
1325
2
转载 Spark 如何并行执行多个job
对于Spark这样的分布式计算系统,任务会分发到多台机器上执行。如何榨干有限的集群资源来实现快速并行计算,是需要考虑的重要问题之一。而这个问题又可以拆解为:如何将有限的集群资源都分配给Spark使用;如何将分配到的资源都利用起来。本文的话题属于后者的范畴,将从笔者在实践中遇到的场景出发,探讨如何在Spark下并行执行多个Job。背景 在我们的数据系统中,有一些实时流任务与离线任务会将...
2019-10-30 16:31:54
7134
3
转载 从PageRank Example谈Spark应用程序调优
最近在做BigData-Benchmark中PageRank测试,在测试时,发现有很多有趣的调优点,想到这些调优点可能是普遍有效的,现把它整理出来一一分析,以供大家参考。BigData-Benchmark中的Spark PageRank采用的是Spark开源代码examples包里的PageRank的代码,原理及代码实现都比较简单,下面我简单地介绍下。PageRank基本原理介绍PageR...
2019-09-26 18:02:49
697
1
转载 Spark中的Spark Shuffle详解
Shuffle简介Shuffle描述着数据从map task输出到reduce task输入的这段过程。shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。因为在分布式情况下,reduce task需要跨节点去拉取其它节点上的map task结果。这一过程将会产生网络资源消...
2019-09-20 16:14:19
701
转载 Apache Spark 统一内存管理模型详解
本文将对 Spark 的内存管理模型进行分析,下面的分析全部是基于 Apache Spark 2.2.1 进行的。为了让下面的文章看起来不枯燥,我不打算贴出代码层面的东西。文章仅对统一内存管理模块(UnifiedMemoryManager)进行分析,如对之前的静态内存管理感兴趣,请参阅网上其他文章。我们都知道 Spark 能够有效的利用内存并进行分布式计算,其内存管理模块在整个系统中扮演着非常...
2019-09-18 17:49:56
476
原创 gradle compileScala 出现 java.lang.StackOverflowError (no error message)
问题:* What went wrong:Execution failed for task ':data-model:compileScala'.> java.lang.StackOverflowError (no error message)* Try:Run with --stacktrace option to get the stack trace. Run wit...
2019-07-08 13:15:30
4571
1
原创 Scoverage 插件在jenkins下不能显示问题
plugin: 'org.scoverage'https://github.com/scoverage/gradle-scoverage/tree/2.5.0问题描述:使用scoverage生成的覆盖了报告可以在本地用浏览器打开,但是使用jenkins执行过CI/CD之后,却无法打开。问题原因:scoverage插件在生产报告的时候并没有下载css文件,而是在html文件在线...
2019-07-08 12:55:32
636
转载 git 仓库迁移
一、完全迁移(包括分支,标签和日志)git clone --mirror <URL to my OLD repo location>cd <New directory where your OLD repo was cloned>git remote set-url origin <URL to my NEW repo location>git pu...
2019-06-28 22:12:09
358
转载 如何获取Maven工程的project.version信息
我敢打赌,您曾经遇到过在命令行上获得Maven项目版本的情况。所以问题是如何得到它?我已经看到了很多解决方案,通过使用Linux工具,如grep, cat或awk等,也看到了很多解决方案,如使用这样的exec-maven-plugin:VERSION=$(mvn -q \ -Dexec.executable="echo" \ -Dexec.args='${project.vers...
2019-06-25 23:09:35
15543
2
转载 maven lifecycle, phase and goal
当我们在使用Maven做一些工作,如打包,编译,运行测试等等任务时,我们已经使用到了Maven中的几个重要概念:lifecycle phase goal例如,如果我们使用ant打包,我们需要清晰的在脚本中告诉ant 源代码在哪,打包的目标文件类型如jar,目标文件夹在哪。首先要编译,然后运行测试,最后打包。而Maven为了在最大程度上简化我们的工作,因而定义了lifecycle,...
2019-06-21 09:13:30
1599
原创 Scala 拉链操作(zip,zipWithIndex)
package com.darren.zip/** * @Author Darren Zhang * @Date 2019-06-03 * @Description TODO **/object Zip { def main(args: Array[String]): Unit = { val names = Array("darren", "anne") ...
2019-06-03 23:36:40
2432
转载 Spark 读写CSV的常用配置项
Spark 2.0 之前,Spark SQL 读写 CSV 格式文件,需要 Databricks 官方提供的 spark-csv 库。在 Spark 2.0 之后,Spark SQL 原生支持读写 CSV 格式文件。测试带标题的文件如下:id|name|age1| darren |182|anne|183|"test"|184|'test2'|18package com.da...
2019-06-03 23:13:34
24315
8
memcached win32 and win64
2015-03-18
命令行trigger airflow一直处于running状态
2019-03-14
请问 shuffle and sort in MapReduce这幅图出自哪里?
2018-07-05
MapReduce 如何加载本地库
2018-06-26
Mac 机器上如何配置启用PDO
2015-09-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人