<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RSS Feed]]></title><description><![CDATA[RSS Feed]]></description><link>https://ecency.com</link><image><url>https://ecency.com/logo512.png</url><title>RSS Feed</title><link>https://ecency.com</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 18:59:29 GMT</lastBuildDate><atom:link href="https://ecency.com/@padluo/rss" rel="self" type="application/rss+xml"/><item><title><![CDATA[从用户连续活跃的最大天数说起]]></title><description><![CDATA[问题引入 最近经常碰到这样的问题，每天每个城市播放最多的10首歌，某月每支股票连续下跌/上涨的最大天数，用户连续活跃的最大天数，初步看起来都和分析函数相关，考验逻辑思维和写复杂SQL的能力。 以用户连续活跃的最大天数为例 以Oracle的分析函数语法说明，首先模拟一些用户活跃的数据， -- 建表语句 DROP TABLE sigin; create table sigin( userid int,]]></description><link>https://ecency.com/@padluo/6acx6m</link><guid isPermaLink="true">https://ecency.com/@padluo/6acx6m</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Thu, 19 Jul 2018 04:33:09 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Series和DataFrame的数据取值与选择]]></title><description><![CDATA[数据取值与选择 NumPy数据取值的方法，包括取值操作（如arr[2, 1]）、切片操作（如arr[:, 1:5]）、掩码操作（如arr[arr > 0]）、花哨的索引操作（如arr[0, [1, 5]]），以及组合操作（如arr[:, [1, 5]]）。 在NumPy的二维数组里，data[0]返回第一行，而在DataFrame中，data['col0']返回第一列。 import numpy]]></description><link>https://ecency.com/@padluo/series-dataframe</link><guid isPermaLink="true">https://ecency.com/@padluo/series-dataframe</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Sun, 01 Jul 2018 07:02:39 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Spark实战（6）_spark-sql -e -f -i命令的整合和spark-sql日常作业开发流程总结]]></title><description><![CDATA[背景介绍 在日常工作中，我们可以在一个shell脚本里面利用spark-sql -e执行sql脚本，而且可以传参数，但是存在一个问题，shell脚本对格式要求严格，而且shell脚本和spark-sql的脚本混在一起，内容庞大凌乱，不好管理。而spark-sql]]></description><link>https://ecency.com/@padluo/spark-sql-e-f-i-spark-sql</link><guid isPermaLink="true">https://ecency.com/@padluo/spark-sql-e-f-i-spark-sql</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Thu, 24 May 2018 13:35:48 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Spark实战（5）_Spark Core核心编程]]></title><description><![CDATA[Spark版本 cdh5.9.0集成的spark的版本1.6.0，集成的hadoop版本2.6.0。查看的网址： 如果用cdh5.9.0 parcels离线安装自带的spark(on yarn)，启动时提示缺少包，需要修改spark-env.sh的配置SPARK_DIST_CLASSPATH，里面默认的配置为在线用rpm方式安装的配置，修改为/opt/clouderra/parcels/CDH/lib。]]></description><link>https://ecency.com/@padluo/spark-5-spark-core</link><guid isPermaLink="true">https://ecency.com/@padluo/spark-5-spark-core</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Thu, 10 May 2018 10:17:30 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Scala的Class、Object、Trait]]></title><description><![CDATA[开发环境 ideaIU或ideaIC。 idea的scala插件，File-Setting-Plugins，搜索scala在线安装，或下载后离线安装Install plugin from disk。 加载scala的包，Project Structure，Global Libraries，添加scala-sdk。 基础 scala中，break和continue的实现， package]]></description><link>https://ecency.com/@padluo/scala-class-object-trait</link><guid isPermaLink="true">https://ecency.com/@padluo/scala-class-object-trait</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Sat, 05 May 2018 15:55:30 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKbnuutfgCPajWBZX9jzYfW9jtt5yDau5fGLUqPiAiMJZT1S4CHF56?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Spark实战（4）_Master原理剖析与源码分析]]></title><description><![CDATA[主备切换机制原理剖析 Master可以配置两个，Spark原生的standalone模式支持Master主备切换。 Spark Master主备切换可以基于两种机制，一种是基于文件系统的，一种是基于ZooKeeper的，基于文件系统的主备切换机制，需要在Active Master挂掉之后，手动去切换到Standby Master上。基于ZooKeeper的主备切换机制，可以实现自动切换Master。]]></description><link>https://ecency.com/@padluo/spark-4-master</link><guid isPermaLink="true">https://ecency.com/@padluo/spark-4-master</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Mon, 30 Apr 2018 15:42:36 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Spark实战（3）_SparkContext原理剖析与源码分析]]></title><description><![CDATA[TaskScheduler的初始化机制 TaskScheduler，如何注册Application，executor如何反向注册？ createTaskScheduler()，内部会创建三个东西。 一是TaskSchedulerImpl，它其实就是我们所说的TaskScheduler。]]></description><link>https://ecency.com/@padluo/spark-3-sparkcontext</link><guid isPermaLink="true">https://ecency.com/@padluo/spark-3-sparkcontext</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Sun, 29 Apr 2018 01:29:57 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKbnQnvk8YXrkBPk1YUYfo1LNvuGwBFCFdFLrUKy5GJY48tA5K7kyf?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Spark实战（2）_Spark内核架构剖析]]></title><description><![CDATA[Standalone模式 提交Spark应用的机器，Application（自己的Spark程序），spark-submit（shell）提交Application。 Driver（启动一个进程），spark-submit使用Standalone模式提交Application的时候，其实会通过反射的方式，（在本机/客户端）创建和构造一个DriverActor进程出来。]]></description><link>https://ecency.com/@padluo/spark-2-spark</link><guid isPermaLink="true">https://ecency.com/@padluo/spark-2-spark</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Thu, 26 Apr 2018 10:01:36 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKejyUvDwTQH7foLAv8ifacy8MYc5eSJr6dB4dKayXNZ87nr2nGYiB?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Scala学习笔记05_面向对象编程之类和对象]]></title><description><![CDATA[定义一个简单的类 // 定义类，包含field及方法 scala> :paste // Entering paste mode (ctrl-D to finish) class HelloWorld { private var name = "leo" def sayHello() {print("Hello, " + name)} def getName]]></description><link>https://ecency.com/@padluo/scala-05</link><guid isPermaLink="true">https://ecency.com/@padluo/scala-05</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Tue, 27 Mar 2018 03:35:48 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Scala学习笔记04_Map与Tuple]]></title><description><![CDATA[创建Map // 创建一个不可变的Map scala> val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23) scala> val ages = Map("Leo" -> 30, "Jen" -> 25,]]></description><link>https://ecency.com/@padluo/scala-04map-tuple</link><guid isPermaLink="true">https://ecency.com/@padluo/scala-04map-tuple</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Mon, 26 Mar 2018 09:58:27 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Scala学习笔记03_数组]]></title><description><![CDATA[Array Array，长度不可改变的数组，Scala数组的底层实际上是Java数组，如字符串数组在底层就是Java的String[]，整数数组在底层就是Java的Int[]。 // 数组初始化后，长度就固定下来了，而且元素全部根据其类型初始化 scala> val a = new Array[Int](10) a: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0,]]></description><link>https://ecency.com/@padluo/scala-03</link><guid isPermaLink="true">https://ecency.com/@padluo/scala-03</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Sun, 25 Mar 2018 15:19:54 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Scala学习笔记02_函数入门]]></title><description><![CDATA[函数入门 函数的定义与调用，在Scala中定义函数时，需要定义函数的函数名、参数、函数体。 scala> :paste // Entering paste mode (ctrl-D to finish) def sayHello(name:String, age:Int) = { if(age >= 18) { printf("Hi, %s, you are a big]]></description><link>https://ecency.com/@padluo/scala-02</link><guid isPermaLink="true">https://ecency.com/@padluo/scala-02</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Sat, 24 Mar 2018 07:58:33 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Scala学习笔记01_条件控制与循环]]></title><description><![CDATA[if表达式 if表达式的定义，if表达式是有值的，就是if或else中最后一行语句返回的值。 scala> val age = 30 age: Int = 30 scala> val isAdult = if(age > 18) 1 else 0 isAdult: Int = 1 if表达式的类型推断，if和else子句的值类型可能不同，Scala会自动进行推断，取两个类型的公共父类型。]]></description><link>https://ecency.com/@padluo/scala-01</link><guid isPermaLink="true">https://ecency.com/@padluo/scala-01</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Fri, 23 Mar 2018 15:38:15 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[分布式消息队列Kafka学习笔记]]></title><description><![CDATA[Kafka概述 a distributed streaming platform Kafka架构和核心概念 producer, 生产者，生产馒头。 consumer, 消费者，吃馒头。 broker, 篮子。 topic, 主题，给馒头带一个标签，topica的馒头是给你吃的，topicb的馒头是给你弟弟吃。 Zookeeper集群部署 安装包解压， tar -xzvf zookeeper-3.4.5.tar.gz]]></description><link>https://ecency.com/@padluo/kafka</link><guid isPermaLink="true">https://ecency.com/@padluo/kafka</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Fri, 02 Mar 2018 08:54:54 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKcxx8ikfXfh9F2eC57EoccPwVXXdEEP3WQDNeT6Xyxk8he3DvBLvk?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[分布式日志收集框架Flume学习笔记]]></title><description><![CDATA[业务现状分析 我们有很多servers和systems，比如network device、operating system、web server、Application，他们会产生日志和其他数据，如何使用这些数据呢？可以把源系统的日志数据移到分布式的存储和计算框架上处理，如何解决？ shell cp hadoop集群的机器上，hadoop fs -put ...，有一系列问题，容错、负载均衡、高延时、压缩等。]]></description><link>https://ecency.com/@padluo/flume</link><guid isPermaLink="true">https://ecency.com/@padluo/flume</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Wed, 28 Feb 2018 03:43:06 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKbwXWW3Hu2Z9uwe5NShKL43vm6XhbEtk1hWHNVMAy5BjKf986Hae2?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[与iPhone5国行A1429的故事：越狱、降级刷机、完美电信3G、不完美电信4G、撸油管]]></title><description><![CDATA[自从上次把小米3全网通版刷了安卓原生系统，干净清爽的一B，装上了G家全家桶，焕发了第二春，可以再战几年，唯一缺点就是不能用4G。 你需要一个原生的安卓 这次再深入研究了一下苹果的iPhone 5。 应用场景 作为电信卡（3G/4G）的备用机，可以电话、短信、科学上网。]]></description><link>https://ecency.com/@padluo/iphone5-a1429-3g-4g</link><guid isPermaLink="true">https://ecency.com/@padluo/iphone5-a1429-3g-4g</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Sun, 25 Feb 2018 05:38:12 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnNn77skbUDW3BGVhDBdUobKkCxnejgN1cAczdwfjKZCkxwu9mDBdYNExDTE8RpUYUDr7TLxCAB8RgoeRZZCawfd2crZFKRuHJCntxPhsxPj?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Flume+Kafka+Storm模拟应用日志的实时处理]]></title><description><![CDATA[模拟应用需求 采集订单系统应用打印的日志文件。 日志文件使用log4j生成，滚动生成。使用tail -F xxx.log来监控文件名称，理解tail -f和tail -F的区别。 将采集的日志文件保存到Kafka中。 (source)输入：tail -F xxx.log (channel)存储：内存 (sink)输出：Kafka config样例， a1.source = s1 a1.channel]]></description><link>https://ecency.com/@padluo/flume-kafka-storm</link><guid isPermaLink="true">https://ecency.com/@padluo/flume-kafka-storm</guid><category><![CDATA[cn]]></category><dc:creator><![CDATA[padluo]]></dc:creator><pubDate>Fri, 09 Feb 2018 10:51:24 GMT</pubDate><enclosure url="https://i.ecency.com/p/NTy4GV6ooFRoojWH8nh86cqJqvhkQvzeE4W8cXFWgdXa4RFoamSrhAptes5xXnWKRfE4Z7U7fTnPXUwbkoHqF9KBUoaXMYzDHWEQ9Ps7S6tc1yvpdsSKebvtjLQnhWWkbuL4J9sUdxort9BaPVQDN8kLn4ZLEhDk3iunEHnk?format=match&amp;mode=fit" length="0" type="false"/></item></channel></rss>