PyCharm开发PySpark程序的配置和实例

对于PyCharm,需要作如下设置: 1、安装pyspark,它会自动安装py4j 2、在edit configuration中,add content root,选择spark下载包的python/pyspark/lib下的pyspark.zip和py4j.zip两个包; 代码实例:

  输入数据为: [crayon-5 … 继续阅读PyCharm开发PySpark程序的配置和实例

Spark数据倾斜解决方法

1、避免shuffle,改reduce join为map join,适用于JOIN的时候有一个表是小表的情况,直接使用collect()获取小表的所有数据,然后brodcast,对大表进行MAP,MAP时直接提取broadcast的小表数据实现JOIN; 2、随机数的方案,对于聚合类操作,可以分步骤进行聚合,第一步,在原来的KEY后面加上随机数(比如1~10),然后进行聚合(比如SUM操作);第二 … 继续阅读Spark数据倾斜解决方法

读书笔记 – 数据驱动从方法到实践

数据源和Event模型的重要性 数据源很重要。若想把数据平台做好,数据源非常重要。如果我们从源头本身结构化,构化,下游就不需要跟着源头动,数据解析效率也会高很多。 用户行为事件模型很有效。规范并结构化用户行为之后,许多数据分析都会变得更容易。每个Event都是用户发生行为的一个快照,能够尽可能地还原现场。 大数据的概念 大:大数据的“大”强调宏观的“大”,而非一味追求数据量的“大”。 全:强调的“ … 继续阅读读书笔记 – 数据驱动从方法到实践

使用PaddlePaddle搭建卷积网络做文本数据分类

PaddlePaddle是百度开源的深度学习框架,采用和cafee类似的layer搭建的方式构建深度神经网络,当前也在试图发布fluid新版本提供算子级别的网络构建技能,最近有一个文本分类的需求,试着使用paddle进行了实验,对paddle的使用体验为: 文档不全,特别简陋 模型库比较好,即使不懂的用法,可以搜索代码查找用法; github的问题回复比较及时 感觉Paddle是在大力推广和发展的 … 继续阅读使用PaddlePaddle搭建卷积网络做文本数据分类

使用Kmeans对Word2vec的输出做聚类

Word2vec会产出每个词语的权重向量 使用这个向量,可以直接对所有的词语聚类 以下代码,以word2vec的model作为输入,进行kmeans训练,同时进行K的迭代计算,选出WSSSE最小的K值

这里使用的是mllib的库 算出来的K值和WSSSE的对应关系为:

继续阅读使用Kmeans对Word2vec的输出做聚类

Hive实现返回MAP的UDF

如果只是返回String,那么直接继承UDF即可,如果想要返回MAP/LIST/STRUCT,则需要继承GenericUDF; 如下代码示例,将URL中的参数进行了解析成了一个MAP返回:

  转载请注明来自:疯狂的蚂蚁www.crazyant.net

Python高级编程技巧

ipython的使用 地址:https://ipython.org/install.html 简单的安装方法:pip install ipython 一些方便的使用方法: 输入要查看的对象,然后输入一个问号可以查看API,输入两个问号可以查看代码 可以直接调用shell命令,在前面带上!即可 按Tab可以自动语法补全 最近的命令输出结果,可以从_、__、___三个变量获得 %hist或者%hist … 继续阅读Python高级编程技巧

快速找到Tomcat中最耗CPU的线程

1、找出TOMCAT的JVM的进程ID

2、查看该进程中,最耗费CPU的线程

3、以TID==326为例,查看该线程的堆栈 首先,将十进制的326转换成十六进制,可以在线转换: http://tool.oschina.net/hexconvert 结果等于146 使用 … 继续阅读快速找到Tomcat中最耗CPU的线程

Java线程池ThreadPoolExecutor详解

1、线程池的工作原理? 线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。 当调用 execute() 方法添加一个任务时,线程池会做如下判断: 如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务; 如果正在运行的线程数量大于或等于 corePoolSize,那么将这个任务放入队列。 如果这时候队列满了 … 继续阅读Java线程池ThreadPoolExecutor详解