<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zkeqing的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zkeqing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zkeqing]]></copyright><item><title><![CDATA[在spark中使用udf完成包含判断 VS column.isin(XXX:_*)]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/100162734</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/100162734</guid><author>zkeqing</author><pubDate>Fri, 30 Aug 2019 17:29:10 +0800</pubDate><description><![CDATA[在这之前，当遇到需要同时判断多个包含关系的时候，我都比较倾向于使用第一种。理由很简单，一个udf，解决所有问题。

但是，今天遇到了一个性能问题（平时肯定也出现了，但是没怎么关注），才关注到这样的现象。


 val filterUsers = (episodesBC: Broadcast[Set[Long]], albumsBC: Broadcast[Set[Long]], channelsBC...]]></description><category></category></item><item><title><![CDATA[Caused by: java.lang.ClassCastException: org.apache.spark.sql.catalyst.expressions.GenericRowWithSch]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/83419263</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/83419263</guid><author>zkeqing</author><pubDate>Fri, 26 Oct 2018 18:48:51 +0800</pubDate><description><![CDATA[这个功能实现非常简单：

主要代码如下，具体讲的重点，请参看文末。


case class GeoDistrictsWithCnt(geohash_code: String, county_id: Int, cnt:Int)
val makeGeoDistricts = udf[GeoDistrictsWithCnt, String, Int, Int]((geohash_code, count...]]></description><category></category></item><item><title><![CDATA[pig中应用DistributedCache机制缓存多文件的尝试]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/78910485</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/78910485</guid><author>zkeqing</author><pubDate>Wed, 27 Dec 2017 11:40:52 +0800</pubDate><description><![CDATA[最近在优化的项目因udf中引用的数据较大，需要应用hadoop的DistributedCache机制。在应用过程中遇到一些问题，push给大家，希望对大家有所帮助。
什么是DistributedCache？
DistributedCache是hadoop框架提供的一种机制,可以将job指定的文件,在job执行前,先行分发到task执行的机器上,并有相关机制对cache文件进行管理.
常见的应]]></description><category></category></item><item><title><![CDATA[HP elitebook 840 G3 蓝牙无法使用问题 + 触摸板无法关闭]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/78552691</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/78552691</guid><author>zkeqing</author><pubDate>Thu, 16 Nov 2017 16:40:24 +0800</pubDate><description><![CDATA[最近常用的耳机出现问题，新入了个蓝牙耳机，然后纠结的事情就出来了，蓝牙是连上了，但是没声音，各种搜索解决方案，各种驱动都装了，都没有解决问题，搞了接近两个小时，实在是太考验人的耐心了， 只想说，想要个简洁有效的解决方案，真心不容易。




解决方案：
搜索HP官网，输入机器类型，在
https://support.hp.com/cn-zh/drivers/selfservice/h]]></description><category></category></item><item><title><![CDATA[pig 的udf中不能import json 问题]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/77880736</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/77880736</guid><author>zkeqing</author><pubDate>Thu, 07 Sep 2017 14:23:50 +0800</pubDate><description><![CDATA[解决方案：
      1. 下载jyson的jar包 http://opensource.xhaus.com/projects/jyson/files
      2. 在python的udf中按如下方式使用即可：
import sys
sys.path.append('xxxxx/jyson-1.0.1.jar')
import com.xhaus.jyson.JysonCodec ]]></description><category></category></item><item><title><![CDATA[PIG中的null问题]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/35284083</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/35284083</guid><author>zkeqing</author><pubDate>Fri, 27 Jun 2014 17:20:20 +0800</pubDate><description><![CDATA[在比较操作（==，！=，>,=,<=），matches，算数操作（+,-,*,/ ,包含%，？，CASE）中，如果有一个操作数为空，那么结果为空。


COUNT_STAR ，不过滤null数据


CAST 操作：将一个null数据从一个数据类型转换到另一个数据类型，结果为空


AVG，MIN，MAX，SUM，COUNT ：这几个操作将忽略空值


CONCAT ：任意]]></description><category></category></item><item><title><![CDATA[Redis 中文入库成功，读取数据写入文件乱码问题]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/29828943</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/29828943</guid><author>zkeqing</author><pubDate>Tue, 10 Jun 2014 15:36:46 +0800</pubDate><description><![CDATA[最近需要用到redis ，但是在编码这个问题上，纠结了很久。
      需求 ：
        每天一个进程将中文文件入库到redis中（不定时更新） ，另外几个进程读取redis中的信息 ，并处理数据结果。
      使用的redis模块 ：
redis-py
      问题 ：
       入库正常，读取数据成功，以GBK编码写入文件出现异常。
     通过以下参数连]]></description><category></category></item><item><title><![CDATA[win64系统下vs2008安装boost_1_51_0]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/9175511</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/9175511</guid><author>zkeqing</author><pubDate>Wed, 26 Jun 2013 10:00:39 +0800</pubDate><description><![CDATA[安装boost_1_51_0的官方文档详见链接：boost源码根目录下的index.html ,往下找可以找到 ：file:///D:/boost/more/getting_started/windows.html 


使用boostpro直接安装 

这个比较简单 ，直接下一步 ……就ok了 。

boost源码安装
首先查看boost源码根目录下的index.html文件 ，]]></description><category></category></item><item><title><![CDATA[LEMON的特殊声明符的应用场景及用途总结]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/9143619</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/9143619</guid><author>zkeqing</author><pubDate>Fri, 21 Jun 2013 11:21:37 +0800</pubDate><description><![CDATA[特殊申明符号
备注


%token_type   ，%type  :

【在LEMON中必须专门使用这两个申明符来指定终结符或者非终结符的类型 。所有的终结符都必须具有唯一的一种数据类型,意味着Parse（）函数的第三个参数（记号的值）必须具有某种特定的统一的数据类型，通常我们用指针指向具有某种特定的统一的数据类型的记号的值来传递第三个参数。若未指定，则默认为void 】如，%tok]]></description><category></category></item><item><title><![CDATA[linux下编译.so 和.a 可能出现的问题 ？]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/9128647</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/9128647</guid><author>zkeqing</author><pubDate>Wed, 19 Jun 2013 15:20:42 +0800</pubDate><description><![CDATA[1. 静态函数库

    这类库的名字一般是libxxx.a；利用静态函数库编译成的文件比较大，因为整个 函数库的所有数据都会被整合进目标代码中，他的优点就显而易见了，即编译后的执行程序不需要外部的函数库支持，因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点，因为如果静态函数库改变了，那么你的程序必须重新编译。

2. 动态函数库

    这类库的名字一般是libxxx]]></description><category></category></item><item><title><![CDATA[lemon 生成C++文件]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/8616689</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/8616689</guid><author>zkeqing</author><pubDate>Wed, 27 Feb 2013 11:06:35 +0800</pubDate><description><![CDATA[lemon.c 和lempar.c 下载地址 ：http://www.hwaci.com/sw/lemon/  或者 sqlite官网 。
lemon 默认生成的是C文件 ，但是只需要修改一下便可以生成C++代码 。
找到lemon.c 文件中的 file_open()函数，其中有一个的调用参数传值的是".c" ,将其修改为".cpp" 即可生成C++文件 。语法文件编译生成的.cpp文件在运]]></description><category></category></item><item><title><![CDATA[在 vs2008 中调试SQLite出现灰色代码问题]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/8573815</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/8573815</guid><author>zkeqing</author><pubDate>Wed, 06 Feb 2013 13:39:54 +0800</pubDate><description><![CDATA[最近在研究SQLite的源码 ，想通过单步调试来先走一遍。结果调试过程中出现跳转错误 。在百度，google找了很多天解决办法都未果 ，幸运的是在年前最后一天上班的时候，找到了 "mz02005"  写的关于vs2008调试SQLite的文章 。帮我解决了大问题哦 。因为自己不太懂awk工具 ，所以按照他说的方式我无从下手 ，后来自己用另外一种方式解决了问题。
     
     在wind]]></description><category></category></item><item><title><![CDATA[pku 1887 Testing the CATCHER]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4654202</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4654202</guid><author>zkeqing</author><pubDate>Sun, 11 Oct 2009 16:58:00 +0800</pubDate><description><![CDATA[http://acm.pku.edu.cn/JudgeOnline/problem?id=1887  #includelong int f[50000],a[50000];int main(){ long int t,l,n,i,j,max,k=0,flag; t=0; while(1) {  k++;  l=0;  flag=0;    while(1)  {   scanf("%l]]></description><category></category></item><item><title><![CDATA[pku 1163 The Triangle]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4653876</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4653876</guid><author>zkeqing</author><pubDate>Sun, 11 Oct 2009 15:06:00 +0800</pubDate><description><![CDATA[http://acm.pku.edu.cn/JudgeOnline/problem?id=1163 #include#includelong int sum[101][101],a[101][101];#define  max(x,y)  x>y?x:yint main(){ long int t,max; int i,j,n; while(scanf("%d",&n)!=EOF) {  ]]></description><category></category></item><item><title><![CDATA[pku  1458  Common Subsequence]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4651791</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4651791</guid><author>zkeqing</author><pubDate>Sat, 10 Oct 2009 20:25:00 +0800</pubDate><description><![CDATA[ http://acm.pku.edu.cn/JudgeOnline/problem?id=1458  #include#includeint f[505][505];char a[1000],b[1000];int main(){ while(scanf("%s %s",a,b)!=EOF) {  int len1,len2,i,j,k,max;  len1=strlen(a);  ]]></description><category></category></item><item><title><![CDATA[pku 2386 Lake Counting]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4646542</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4646542</guid><author>zkeqing</author><pubDate>Fri, 09 Oct 2009 16:52:00 +0800</pubDate><description><![CDATA[http://acm.pku.edu.cn/JudgeOnline/problem?id=2386 一个纯粹的搜索题 代码：#include#includechar map[105][105];//方向数组int movx[8]={1,1,1,0,-1,-1,-1,0,},movy[8]={-1,0,1,1,1,0,-1,-1};int s,t;void dfs(int x,i]]></description><category></category></item><item><title><![CDATA[pku 1160 Post Office]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4646096</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4646096</guid><author>zkeqing</author><pubDate>Fri, 09 Oct 2009 15:37:00 +0800</pubDate><description><![CDATA[http://acm.pku.edu.cn/JudgeOnline/problem?id=1160 题意：有V个村庄，要在V个村庄上建立S也邮局，使得所有的村庄到他们最近的邮局的距离和最小。（邮局建在村庄里面，和村庄占据着同一个点）  代码 ：： #include#include#include#include#include     #include  using  ]]></description><category></category></item><item><title><![CDATA[pku 1141   Brackets Sequence]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4644500</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4644500</guid><author>zkeqing</author><pubDate>Fri, 09 Oct 2009 09:41:00 +0800</pubDate><description><![CDATA[http://acm.pku.edu.cn/JudgeOnline/problem?id=1141 题目大意:给你一贯括号序列(只包含小括号和中括号)，让你找出长度最小的regular brackets sequence包含此子序列.其中的regular brackets sequence定义如下:1)空序列是一个regular brackets sequence;2)如果s是一个re]]></description><category></category></item><item><title><![CDATA[pku 1050 To the Max]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4639699</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4639699</guid><author>zkeqing</author><pubDate>Wed, 07 Oct 2009 16:52:00 +0800</pubDate><description><![CDATA[2009-10-07 To the MaxDescriptionGiven a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array]]></description><category></category></item><item><title><![CDATA[pku 3258 River Hopscotch  ]]></title><link>https://blog.youkuaiyun.com/zkeqing/article/details/4639534</link><guid>https://blog.youkuaiyun.com/zkeqing/article/details/4639534</guid><author>zkeqing</author><pubDate>Wed, 07 Oct 2009 16:04:00 +0800</pubDate><description><![CDATA[ 3258 River Hopscotch   acm.pku.edu.cn/JudgeOnline/problem/*用二分法查找，求得最适合的key值。0--l之间有N个石头，删除M个，使得任意两个石头之间的距离增大，并且求出增大后的最小距离的最大值。不考虑起点和终点。起点为0 ，终点为l.如果M==0就输出距离的最大值！Sample Input25 5 2214112117Sampl]]></description><category></category></item></channel></rss>