<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[stop_here_find的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/stop_here_find</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; stop_here_find]]></copyright><item><title><![CDATA[esp8266+dht11传感器实时上报温湿度]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/154188614</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/154188614</guid><author>stop_here_find</author><pubDate>Fri, 31 Oct 2025 15:41:51 +0800</pubDate><description><![CDATA[【代码】esp8266+dht11传感器实时上报温湿度。]]></description><category></category></item><item><title><![CDATA[实用且免费的 IP 地域查询 API 接口推荐]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/143716285</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/143716285</guid><author>stop_here_find</author><pubDate>Tue, 12 Nov 2024 15:48:19 +0800</pubDate><description><![CDATA[在日常开发中，IP 地域查询是一个常见需求。最近无意间发现一个实用的 IP 地域查询 API，目前是免费的，未来是否收费尚不可知，但在当前情况下非常值得推荐。通过简单的 HTTP 请求，即可获取指定 IP 地址的地理信息。这一接口无身份验证需求，使用起来非常方便，适合轻量级查询需求。]]></description><category></category></item><item><title><![CDATA[基于python的简单upd发送接收实验]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/137684817</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/137684817</guid><author>stop_here_find</author><pubDate>Fri, 12 Apr 2024 16:08:39 +0800</pubDate><description><![CDATA[【代码】基于python的简单upd发送接收实验。]]></description><category></category></item><item><title><![CDATA[pymysql的基本用法]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/134696495</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/134696495</guid><author>stop_here_find</author><pubDate>Wed, 29 Nov 2023 18:31:40 +0800</pubDate><description><![CDATA[*]]></description><category></category></item><item><title><![CDATA[go语言实现任何excel的数据入库操作]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/130732901</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/130732901</guid><author>stop_here_find</author><pubDate>Wed, 17 May 2023 19:12:16 +0800</pubDate><description><![CDATA[需求：用户可以上传一个任意的excel表格，根据每一个sheet去将数据导入mysql,首先根据sheetname去判断数据表是否存在，若存在则用sheetname+编号创建表，若不存在则直接用sheetname创建表，创建完表后，将数据导入该表中。（excel的列和类型也是不固定）]]></description><category></category></item><item><title><![CDATA[分享几个阿里云盘资源搜索平台]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/128854334</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/128854334</guid><author>stop_here_find</author><pubDate>Thu, 02 Feb 2023 17:35:59 +0800</pubDate><description><![CDATA[几个平时用得到的阿里云盘资源搜索网站]]></description><category></category></item><item><title><![CDATA[SpringBoot拦截器的简单实现]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/128396224</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/128396224</guid><author>stop_here_find</author><pubDate>Wed, 21 Dec 2022 13:59:08 +0800</pubDate><description><![CDATA[1、首先完成拦截后的处理逻辑，本次的规则比较简单只需判断请求头里是否包含Ticket字段，包含且有效则进行放行。2、编写拦截规则，需要拦截哪些请求。]]></description><category></category></item><item><title><![CDATA[flink UDTF函数的编写]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/127793685</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/127793685</guid><author>stop_here_find</author><pubDate>Thu, 10 Nov 2022 18:15:17 +0800</pubDate><description><![CDATA[将含有n个json的jsonarray转换成n条数据，且每个字段都解析出来。即一反多的函数，使用场景较为广泛，近期也正好用到了，就写一下吧。jar包需要放在flink安装目录的lib里。]]></description><category></category></item><item><title><![CDATA[scala递归的方法快速解析Json数据]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/120552719</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/120552719</guid><author>stop_here_find</author><pubDate>Wed, 29 Sep 2021 17:24:49 +0800</pubDate><description><![CDATA[scala递归的方法快速解析Json数据
思路：既然可以得到keyset() ，为什么不根据keyset去进行遍历，拿到所有的数据？主要难点在于我们不知道我们拿到的key去解析成一个对象还是去解析成一个字符串，我在这里用到了模式匹配，以下提供代码以供参考(Array类型的我没有处理，如果要处理根据业务去进行相应的处理)：


import java.util

import com.alibaba.fastjson.{JSON, JSONObject}
import org.apache.spark.rdd]]></description><category></category></item><item><title><![CDATA[spark streaming案例总结]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/120281985</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/120281985</guid><author>stop_here_find</author><pubDate>Tue, 14 Sep 2021 10:44:10 +0800</pubDate><description><![CDATA[spark streaming案例总结
1、读取N分钟前文件
def readFile(bachTime: Int, big_time: Int, frame: DataFrame, template_path: String, spark: SparkSession) = {
    
    val nowMinute: String = getNowTime()._3
    val yu_time = nowMinute.toInt % bachTime

    var file_df: Data]]></description><category></category></item><item><title><![CDATA[spark streaming 读取kafka数据]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/120281660</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/120281660</guid><author>stop_here_find</author><pubDate>Tue, 14 Sep 2021 10:17:41 +0800</pubDate><description><![CDATA[spark streaming 读取kafka数据
1、程序入口
 val spark = SparkSession.builder().appName(this.getClass.getName).master("local[*]").getOrCreate()
    import spark.implicits._
    val sc = spark.sparkContext
    val ssc = new StreamingContext(spark.sparkContext, Minutes]]></description><category></category></item><item><title><![CDATA[git常用命令]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/120084084</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/120084084</guid><author>stop_here_find</author><pubDate>Fri, 03 Sep 2021 16:06:54 +0800</pubDate><description><![CDATA[git命令
git pull  拉取更新 (第一步)
git add 文件路径名称（第二步）
git commit -m ‘提交文件注释说明’（第三步）
git push 上传远程代码并合并（第四步）
（02与03机器上再 spark下ak下：git pull (第五步)
uk 流）
备注 ： 第五步忽略，自用

...]]></description><category></category></item><item><title><![CDATA[python自动更换电脑桌面壁纸]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/119088416</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/119088416</guid><author>stop_here_find</author><pubDate>Sun, 25 Jul 2021 21:50:10 +0800</pubDate><description><![CDATA[首先找图片的来源：
http://api.btstu.cn/sjbz/?lx=meizi&amp;format=images
这是一个随机返回图片的api(搏天api)
具体代码如下：（只需更改文件存储位置即可）
import time
import uuid

import requests
import win32api
import win32con
import win32gui

url = 'http://api.btstu.cn/sjbz/?lx=meizi&amp;format=images]]></description><category></category></item><item><title><![CDATA[hive上的小文件使用spark进行合并]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/119006916</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/119006916</guid><author>stop_here_find</author><pubDate>Thu, 22 Jul 2021 19:18:01 +0800</pubDate><description><![CDATA[hive上的小文件使用spark进行合并
引言：我们的一些实时处理的文件再不同批次下生成的文件大小不一致，
有时会产生大量的小文件，对于我们后期的数据处理影响极大，因此需要将小文件合并再save成大小均为128M的文件更为合适。
原理：首先读取该目录下的文件大小
 val fs = FileSystem.get(sc.hadoopConfiguration)
      val dirSize = fs.getContentSummary(new Path(lastInputPath)).getLength]]></description><category></category></item><item><title><![CDATA[Kafka-分布式消息队列]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/115469488</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/115469488</guid><author>stop_here_find</author><pubDate>Tue, 06 Apr 2021 20:21:35 +0800</pubDate><description><![CDATA[结构图：

一、组件
1）Producer ：消息生产者，就是向kafka broker发消息的客户端；
2）Consumer ：消息消费者，从kafka broker取消息的客户端；
3）Topic ：可以理解为一个队列（就是同一个业务的数据放在一个topic下）；
4）Consumer Group （CG）：这是kafka用来实现一个topic消息的广播（发给所有的consumer）和单播（发给任意一个consumer）的手段。一个topic可以有多个CG。topic的消息会复制（不是真的复制，是概念上]]></description><category></category></item><item><title><![CDATA[hive案例-- 求连续N天登录天数]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/115263689</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/115263689</guid><author>stop_here_find</author><pubDate>Sat, 27 Mar 2021 14:20:14 +0800</pubDate><description><![CDATA[数据：
A	2020-01-01
A	2020-01-02
A	2020-01-04
A	2020-01-05
A	2020-01-06
A	2020-01-07
A	2020-01-09
A	2020-01-10
B	2020-01-01
B	2020-01-02
B	2020-01-04
B	2020-01-05
B	2020-01-06
B	2020-01-07
B	2020-01-09
B	2020-01-10

建表：
create table time(
`id` string,
`data` ]]></description><category></category></item><item><title><![CDATA[spark-mysql的读写]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/115141077</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/115141077</guid><author>stop_here_find</author><pubDate>Tue, 23 Mar 2021 20:21:45 +0800</pubDate><description><![CDATA[一、读mysql
1、format格式
val personDFS: DataFrame = spark.read
      .format("jdbc")
      .option("url", "jdbc:mysql://localhost:3306/indo")
      .option("user", "root")
      .option("password", "root")
      .option("dbtable", "person")
      .load()
    pe]]></description><category></category></item><item><title><![CDATA[scala元组]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/114678281</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/114678281</guid><author>stop_here_find</author><pubDate>Thu, 11 Mar 2021 19:52:43 +0800</pubDate><description><![CDATA[1、定义：元组可以装着多个不同类型的值，最多可以放22个元素
2、定义一个元组
val t =(1,2.5,true,"abc")

3、获取元组中的值，元组脚标从1开始，格式  元组名._脚标
val t =(1,2.5,true,"abc")
t._4
t._1

4、通过productArity来获取元组的长度
val t =(1,2.5,true,"abc")
println(t.productArity)

5、通过productElement来获取元组的元素，下标从0开始
val t =(1,2]]></description><category></category></item><item><title><![CDATA[Scala数组的定义和使用]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/114677292</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/114677292</guid><author>stop_here_find</author><pubDate>Thu, 11 Mar 2021 19:42:28 +0800</pubDate><description><![CDATA[一、数组的定义：
1、不可变数组的定义
①、val arr=new Array[Int](5) 定义一个长度为五的定长数组
②、val arr= Array[Int](1,4,5,6,7)给定泛型和内容的定长数组
③、val arr3=Array(1,3,true,"hello",3.5,2L) 不给泛型给内容的定长数组
2、可变数组的定义
前提：先导包
import scala.collection.mutable._

①、val arr=new ArrayBuffer[Int]() new 一个Arr]]></description><category></category></item><item><title><![CDATA[Scala循环的使用]]></title><link>https://blog.youkuaiyun.com/stop_here_find/article/details/114643934</link><guid>https://blog.youkuaiyun.com/stop_here_find/article/details/114643934</guid><author>stop_here_find</author><pubDate>Wed, 10 Mar 2021 19:45:46 +0800</pubDate><description><![CDATA[一、while 循环（类似于java）
var i=1
while (i&lt;=10){
  i+=1
}
println(i)

（注意：scala中没有 i++、i-- 可以 i+=1、i-=1）
二、for循环（与java差别较大）
1、三种定义方法
①、to关键字（左右闭区间）
for(i&lt;- 1 to 10){
  println(i)
}

②、until关键字（左闭右开）
for(i&lt;- 1 until(10)){
  println(i)
}

③、Range关键字
A：Ran]]></description><category></category></item></channel></rss>