3 min read

技术:for循环示例

技术 系列导航

1 技术:Poisson分布、回归Python实现 2017-12-20
2 技术:beta系数理解 2017-12-21
3 技术:Python List剔除重复值 2017-12-21
4 技术:t-SNE处理高维数据可视化 2017-12-21
5 技术:用R语言进行文件系统管理 2017-12-21
6 技术:fct_lump分箱使用方法 2017-12-22
7 技术:F1分数为什么可以看不平衡样本的预测能力 2017-12-27
8 技术:Fisher的一个矩阵预算 2017-12-27
9 技术:case_when使用方法 2017-12-28
10 技术:Python接口函数 2017-12-28
11 技术:fct_relevel调整对照组,批量的方案 2017-12-30
12 技术:python中变量批量处理集成方案 2017-12-30
13 技术:Python接口函数-中台 2018-01-03
14 技术:使用pbd包进行debug 2018-01-03
15 技术:R实现随机分组 2018-01-04
16 技术:jiebaR包做文本清洗 2018-01-05
17 技术:r_WACC使用说明 2018-01-05
18 技术:使用switchhost安装host 2018-01-05
19 技术:Git的下载问题 2018-01-06
20 技术:新闻爬虫 2018-01-07
21 技术:Scalable Data Processing in R 2018-01-08
22 技术:使用git创建一个自己的本地仓库 2018-01-11
23 技术:dashboard构建,来自yihui的包 2018-01-12
24 技术:最大似然估计再理解 2018-01-12
25 技术:itchat包提取微信好友公开数据 2018-01-13
26 技术:do函数和biglm包 2018-01-17
27 技术:Imputer后X少了一列 2018-01-18
28 技术:mac连接mysql,理论上win7也可以 2018-01-19
29 技术:ggpubr提高作图效率 2018-01-20
30 技术:t-SNE理论部分补充 2018-01-22
31 技术:RMarkdown的使用技巧 2018-01-30
32 技术:通过anova检验,理解R2、R_adj.2、F值 2018-01-31
33 技术:ggridges 山峦图 学习笔记 2018-02-02
34 技术:Tidyverse使用技巧 2018-02-02
35 技术:XGBoost 学习笔记 2018-02-02
36 技术:分布变离散,或者纠正skew 2018-02-02
37 技术:rsq在R中自定义函数 2018-02-03
38 技术:Jupyter实战 2018-02-13
39 技术:美化与定制 2018-02-21
40 技术:数据对比可视化指南 2018-02-22
41 技术:功能体验 2018-02-26
42 技术:高效数据处理 2018-02-27
43 技术:模型优化技巧 2018-03-05
44 技术:原理与应用 2018-03-06
45 技术:模型与可视化 2018-03-08
46 技术:美化与交互指南 2018-03-11
47 技术:高效操作指南 2018-03-14
48 技术:用法与优化技巧 2018-03-17
49 技术:效率提升指南 2018-03-18
50 技术:问题排查技巧 2018-03-18
51 技术:高效操作指南 2018-03-19
52 技术:方法与代码示例 2018-03-21
53 技术:进阶技巧与优化 2018-03-21
54 技术:实战示例 2018-03-22
55 技术:效率与规范指南 2018-03-24
56 技术:dplython包测评 2018-03-25
57 技术:原理与实现 2018-04-02
58 技术:原理与应用解析 2018-04-03
59 技术:实战指南 2018-04-05
60 技术:核心语法与函数整理 2018-04-05
61 技术:复利计算与应用 2018-04-08
62 技术:简单规则模型解析 2018-04-14
63 技术:高效代码设计指南 2018-04-25
64 技术:原理与应用学习笔记 2018-04-29
65 技术:实战指南 2018-04-29
66 技术:原理与应用 2018-05-01
67 技术:表格格式化指南 2018-05-02
68 技术:原理与应用介绍 2018-05-08
69 技术:高效文本拼接 2018-05-11
70 技术:方法与实践学习笔记 2018-05-12
71 技术:方法与工具 2018-05-12
72 技术:功能解析 2018-05-17
73 技术:高效数据输入 2018-05-21
74 技术:基础模型与方法 2018-05-22
75 技术:功能与使用体验 2018-05-26
76 技术:特征筛选学习笔记 2018-05-29
77 技术:实战技巧 2018-05-30
78 技术:建模思路解析 2018-06-03
79 技术:策略与实战 2018-06-03
80 技术:数据展示指南 2018-06-04
81 技术:包与环境配置指南 2018-07-14
82 技术:高效操作指南 2018-07-19
83 技术:方法与案例解析 2018-07-24
84 技术:统计建模学习笔记 2018-07-24
85 技术:展示技巧与原则 2018-08-10
86 技术:数据采集实战技巧 2018-08-21
87 技术:指标设计学习笔记 2018-09-20
88 技术:建模流程实战 2018-10-01
89 技术:大规模数据探索 2018-10-20
90 技术:文本提取与分析 2018-10-20
91 技术:原理与R实现实战 2018-10-21
92 技术:学习资源获取技巧 2018-10-23
93 技术:深度学习模型实战 2018-10-24
94 技术:实战指南 2018-10-30
95 技术:分析与展示指南 2018-11-03
96 技术:图片编辑与转换 2018-11-03
97 技术:安装与使用基础学习笔记 2018-11-07
98 技术:非结构化数据处理 2018-11-29
99 技术:表格美化技巧 2018-12-13
100 技术:分类数据可视化 2018-12-24
101 技术:流程图绘制技巧 2018-12-24
102 技术:自动化设置 2018-12-28
103 技术:协作与版本控制 2018-12-29
104 技术:pipeline设计 2018-12-30
105 技术:Git历史记录清理 2018-12-31
106 技术:AUC指标对比 2019-01-01
107 技术:时间序列可视化 2019-01-01
108 技术:变量命名工具指南 2019-01-02
109 技术:网页自动化截图 2019-01-02
110 技术:配置与优化 2019-01-03
111 技术:原理与应用 2019-01-07
112 技术:语法与核心概念 2019-01-14
113 技术:R包徽章设计 2019-01-15
114 技术:项目结构设计 2019-01-21
115 技术:文本分类基础任务 2019-01-22
116 技术:线性与非线性模型 2019-01-22
117 技术:有效性验证 2019-01-27
118 技术:评估与应用 2019-01-29
119 技术:循环神经网络入门 2019-01-30
120 技术:长短期记忆网络入门 2019-01-30
121 技术:基础到进阶 2019-02-06
122 技术:查询与整合 2019-02-06
123 技术:方法与案例 2019-02-14
124 技术:R包高效开发指南 2019-02-20
125 技术:解析与操作 2019-02-20
126 技术:训练与预测 2019-02-25
127 技术:原理与代码 2019-02-26
128 技术:GitHub个人访问令牌(PAT)设置 2019-03-04
129 技术:方法与工具 2019-03-07
130 技术:文本特征提取示例 2019-03-08
131 技术:基础任务示例 2019-03-18
132 技术:条形图与表头设计 2019-03-20
133 技术:连续与分类变量差异 2019-03-30
134 技术:思路与方法 2019-04-08
135 技术:方法与工具 2019-04-15
136 技术:多格式读取 2019-04-16
137 技术:方法与工具 2019-05-11
138 技术:Git/GitHub/GitLab 2019-05-13
139 技术:命令与操作 2019-05-19
140 技术:协作与版本控制 2019-05-26
141 技术:语法与实践 2019-06-28
142 技术:功能与API 2019-07-13
143 技术:安装与使用 2019-07-24
144 读《未来简史》:技术与未来 2019-09-14
145 技术:高效数据处理 2019-10-09
146 技术:性能优化技巧 2019-10-12
147 技术:配置与运维 2019-10-29
148 技术:原理与经典模型 2019-12-25
149 技术:构建到发布流程 2019-12-26
150 技术:方法与案例 2019-12-27
151 技术:命令与自动化 2019-12-30
152 技术:Pandas数据处理实战指南 2020-01-19
153 技术:特征工程之目标编码学习笔记 2020-01-20
154 技术:文档编写与美化 2020-01-28
155 技术:核心算法与应用 2020-01-29
156 技术:流程图绘制技巧 2020-01-29
157 技术:DataCamp课程笔记 2020-01-31
158 技术:Python实用代码片段合集 2020-01-31
159 技术:自动化构建流程 2020-02-02
160 技术:自动化工作流配置 2020-02-04
161 技术:高效查找代码与项目 2020-02-11
162 技术:代码环境快速部署 2020-02-24
163 技术:USD数据分析论文收录暨GitBook发布 2020-05-02
164 游记:西安博物院(5)西汉器物工艺到新莽技术应用 2020-10-01
165 技术:Causal Forest 2021-03-18
166 技术小团队人才培养思考:压力・复盘・沉淀 2024-05-21
167 BJ Fogg模型:从说服技术理论到行为设计实践 2024-11-24
168 管理视角:技术团队的核心交付是什么 2025-02-13
169 研读毛选:核心技术三大特征 2025-03-28

基于 R 实现 Impala 的循环逻辑(for/while/repeat)

前言

Impala 作为 Apache Hadoop 生态中的交互式 SQL 查询引擎,具备高效的大数据分析能力,但原生不支持 SQL 层面的 for/while 等循环语法。在实际工程中,我们常需要通过循环实现“累加计算”“迭代更新”等需求(如计数器递增、数据分批处理)。

本文将介绍一种实用方案:通过 R 语言的循环逻辑 + RODBC 连接 Impala,间接实现循环操作,并结合具体案例说明操作细节、类型控制要点及扩展思路。

1. 核心原理

Impala 本身无循环语法,但可通过“外部工具+Impala 数据读写”组合实现循环:

  1. 外部循环控制:用 R 语言的 for/while/repeat 语句定义循环次数或终止条件;
  2. Impala 数据交互:通过 RODBC 包建立 R 与 Impala 的连接,每次循环中向 Impala 发送 INSERT OVERWRITE(覆盖写入)或 INSERT INTO(追加写入)语句,实现数据的迭代更新;
  3. 类型稳定性保障:Impala 存在自动类型转换问题(如 smallint 可能被转为 int),需显式指定数据类型以避免计算误差。

2. 实操步骤:实现 10 次累加循环

以“初始值 100,每次累加 1,循环 10 次后得到 110”为例,完整操作如下:

2.1 环境准备

  • 依赖包:需安装 RODBC 包(用于连接 Impala),安装命令:

    install.packages("RODBC")  # 仅首次安装需执行
    library(RODBC)             # 加载包
  • Impala 连接配置:需提前在本地 ODBC 数据源中配置 Impala 连接(名称建议设为 Impala,后续代码可直接复用),配置时需填写 Impala 服务地址、端口(默认 21050)及认证信息。

2.2 步骤 1:创建初始表并插入初始值

首先在 Impala 中创建测试表 opd.t190203_test_forloop_ljx,并插入初始值 100(显式指定类型为 smallint,避免自动类型转换):

-- 1. 创建表(若表已存在,此步骤可跳过)
CREATE TABLE opd.t190203_test_forloop_ljx (
  x1 SMALLINT  -- 显式指定字段类型为 smallint
) 
STORED AS PARQUET;  -- 建议用 PARQUET 格式(压缩率高、查询快)

-- 2. 插入初始值 100
INSERT OVERWRITE opd.t190203_test_forloop_ljx
SELECT CAST(100 AS SMALLINT) AS x1;  -- 强制转换为 smallint

验证初始值

SELECT * FROM opd.t190203_test_forloop_ljx;
-- 预期结果:x1 = 100

2.3 步骤 2:单次循环测试

在正式批量循环前,先测试“单次累加”是否生效,避免批量执行时出错:

-- 单次累加:将当前 x1 加 1 后覆盖原表
INSERT OVERWRITE opd.t190203_test_forloop_ljx
SELECT CAST(x1 + 1 AS SMALLINT) AS x1  -- 计算后仍强制转为 smallint
FROM opd.t190203_test_forloop_ljx;

-- 验证单次累加结果
SELECT * FROM opd.t190203_test_forloop_ljx;
-- 预期结果:x1 = 101(若结果仍为 100,需检查表连接或 SQL 语法)

关键说明:
此处使用 INSERT OVERWRITE 而非 INSERT INTO,是因为每次循环需“覆盖原数据”(仅保留最新计算结果);若需保留历史迭代记录,可改用 INSERT INTO 实现“追加写入”。

2.4 步骤 3:R 实现 10 次批量循环

通过 R 的 for 循环,批量执行 10 次累加操作,代码如下:

# 1. 建立 R 与 Impala 的连接
impala_conn <- odbcConnect("Impala")  # "Impala" 为 ODBC 数据源名称
if (impala_conn == -1) {  # 检查连接是否成功
  stop("Impala 连接失败,请检查 ODBC 配置或服务状态!")
}

# 2. 重置初始值(避免受之前单次测试影响)
sqlQuery(
  channel = impala_conn,
  query = "INSERT OVERWRITE opd.t190203_test_forloop_ljx
           SELECT CAST(100 AS SMALLINT) AS x1"
)

# 3. 执行 10 次循环累加
for (i in 1:10) {  # 循环次数:1 到 10
  sqlQuery(
    channel = impala_conn,
    query = "INSERT OVERWRITE opd.t190203_test_forloop_ljx
             SELECT CAST(x1 + 1 AS SMALLINT) AS x1
             FROM opd.t190203_test_forloop_ljx"
  )
  # (可选)打印循环进度
  cat("已完成第", i, "次循环,当前 x1 值:", 
      sqlQuery(impala_conn, "SELECT x1 FROM opd.t190203_test_forloop_ljx"), "\n")
}

# 4. 关闭 Impala 连接(避免资源占用)
odbcClose(impala_conn)

2.5 步骤 4:验证最终结果

循环结束后,在 Impala 中查询最终结果:

SELECT x1 FROM opd.t190203_test_forloop_ljx;
-- 预期结果:x1 = 110(100 + 1*10)

3. 关键注意事项

3.1 数据类型强制控制

Impala 存在自动类型提升问题(如 smallintint 运算后结果为 int,若写入 smallint 字段可能导致精度丢失或插入失败)。
解决方案:通过 CAST(...) AS 目标类型 显式指定类型,如本文中始终将结果转为 smallint
参考:Impala JIRA 官方issue(IMPALA-3155)

3.2 循环效率优化

若循环次数多(如 1000+)或数据量大,需注意以下优化点:

  • 减少连接开销:避免在循环内重复建立/关闭 Impala 连接(本文中仅在循环前建立、循环后关闭);
  • 批量执行:若需处理分批数据(如按日期循环同步数据),可在 R 中先生成所有 SQL 语句,再用 sqlQuery 批量执行;
  • 避免频繁查询进度:步骤 2.4 中“打印循环进度”的查询会增加 IO 开销,大循环场景建议删除或减少打印频率。

3.3 异常处理

实际工程中需增加异常处理逻辑,避免循环中断导致数据不一致:

# 示例:增加 tryCatch 捕获 SQL 执行错误
for (i in 1:10) {
  tryCatch({
    sqlQuery(
      channel = impala_conn,
      query = "INSERT OVERWRITE opd.t190203_test_forloop_ljx
               SELECT CAST(x1 + 1 AS SMALLINT) AS x1
               FROM opd.t190203_test_forloop_ljx"
    )
    cat("第", i, "次循环成功\n")
  }, error = function(e) {
    cat("第", i, "次循环失败,错误信息:", e$message, "\n")
    odbcClose(impala_conn)  # 出错时关闭连接
    stop("循环中断,需排查错误后重新执行")
  })
}

4. 扩展:实现 while/repeat 循环

for 循环外,也可通过 R 的 while(条件循环)或 repeat(无限循环+break)实现更灵活的逻辑。

4.1 while 循环(满足条件则继续)

示例:当 x1 < 120 时持续累加(从 100 开始,需循环 20 次):

impala_conn <- odbcConnect("Impala")
# 重置初始值
sqlQuery(impala_conn, "INSERT OVERWRITE opd.t190203_test_forloop_ljx SELECT CAST(100 AS SMALLINT) AS x1")

# while 循环:x1 < 120 时继续累加
current_x1 <- sqlQuery(impala_conn, "SELECT x1 FROM opd.t190203_test_forloop_ljx")[[1]]
while (current_x1 < 120) {
  sqlQuery(impala_conn, "INSERT OVERWRITE opd.t190203_test_forloop_ljx SELECT CAST(x1 + 1 AS SMALLINT) AS x1 FROM opd.t190203_test_forloop_ljx")
  current_x1 <- sqlQuery(impala_conn, "SELECT x1 FROM opd.t190203_test_forloop_ljx")[[1]]  # 更新当前值
  cat("当前 x1 =", current_x1, "\n")
}

odbcClose(impala_conn)

4.2 repeat 循环(手动控制终止)

示例:累加至 x1 = 115 时终止循环:

impala_conn <- odbcConnect("Impala")
sqlQuery(impala_conn, "INSERT OVERWRITE opd.t190203_test_forloop_ljx SELECT CAST(100 AS SMALLINT) AS x1")

# repeat 循环:无限循环,直到 x1 = 115 时 break
repeat {
  current_x1 <- sqlQuery(impala_conn, "SELECT x1 FROM opd.t190203_test_forloop_ljx")[[1]]
  if (current_x1 == 115) {
    cat("达到目标值", current_x1, ",终止循环\n")
    break  # 满足条件,退出循环
  }
  sqlQuery(impala_conn, "INSERT OVERWRITE opd.t190203_test_forloop_ljx SELECT CAST(x1 + 1 AS SMALLINT) AS x1 FROM opd.t190203_test_forloop_ljx")
  cat("当前 x1 =", current_x1 + 1, "\n")
}

odbcClose(impala_conn)

5. 应用场景扩展

本文的循环思路不仅限于“数值累加”,还可应用于以下实际场景:

  1. 分批同步数据:按日期循环同步历史数据(如每天同步前一天的日志到 Impala 表);
  2. 迭代计算:实现 PageRank 算法、递推公式等需多次迭代的逻辑(参考 fronkonstin 的 SQL 版 PageRank 思路);
  3. 数据清洗:循环处理多表或多字段的异常值(如每次循环修复一个字段的空值)。

总结

Impala 原生无循环语法,但通过“R 循环控制 + RODBC 连接 + Impala 数据读写”的组合,可灵活实现 for/while/repeat 循环。核心要点包括:

  1. 显式指定数据类型,避免 Impala 自动类型转换导致的误差;
  2. 优化 Impala 连接逻辑,减少资源开销;
  3. 根据业务需求选择合适的循环类型(for 适合固定次数,while/repeat 适合条件控制)。

该方案在大数据工程中具有较高的实用性,可根据具体场景调整循环逻辑和 SQL 语句。

技术 系列导航

1 技术:Poisson分布、回归Python实现 2017-12-20
2 技术:beta系数理解 2017-12-21
3 技术:Python List剔除重复值 2017-12-21
4 技术:t-SNE处理高维数据可视化 2017-12-21
5 技术:用R语言进行文件系统管理 2017-12-21
6 技术:fct_lump分箱使用方法 2017-12-22
7 技术:F1分数为什么可以看不平衡样本的预测能力 2017-12-27
8 技术:Fisher的一个矩阵预算 2017-12-27
9 技术:case_when使用方法 2017-12-28
10 技术:Python接口函数 2017-12-28
11 技术:fct_relevel调整对照组,批量的方案 2017-12-30
12 技术:python中变量批量处理集成方案 2017-12-30
13 技术:Python接口函数-中台 2018-01-03
14 技术:使用pbd包进行debug 2018-01-03
15 技术:R实现随机分组 2018-01-04
16 技术:jiebaR包做文本清洗 2018-01-05
17 技术:r_WACC使用说明 2018-01-05
18 技术:使用switchhost安装host 2018-01-05
19 技术:Git的下载问题 2018-01-06
20 技术:新闻爬虫 2018-01-07
21 技术:Scalable Data Processing in R 2018-01-08
22 技术:使用git创建一个自己的本地仓库 2018-01-11
23 技术:dashboard构建,来自yihui的包 2018-01-12
24 技术:最大似然估计再理解 2018-01-12
25 技术:itchat包提取微信好友公开数据 2018-01-13
26 技术:do函数和biglm包 2018-01-17
27 技术:Imputer后X少了一列 2018-01-18
28 技术:mac连接mysql,理论上win7也可以 2018-01-19
29 技术:ggpubr提高作图效率 2018-01-20
30 技术:t-SNE理论部分补充 2018-01-22
31 技术:RMarkdown的使用技巧 2018-01-30
32 技术:通过anova检验,理解R2、R_adj.2、F值 2018-01-31
33 技术:ggridges 山峦图 学习笔记 2018-02-02
34 技术:Tidyverse使用技巧 2018-02-02
35 技术:XGBoost 学习笔记 2018-02-02
36 技术:分布变离散,或者纠正skew 2018-02-02
37 技术:rsq在R中自定义函数 2018-02-03
38 技术:Jupyter实战 2018-02-13
39 技术:美化与定制 2018-02-21
40 技术:数据对比可视化指南 2018-02-22
41 技术:功能体验 2018-02-26
42 技术:高效数据处理 2018-02-27
43 技术:模型优化技巧 2018-03-05
44 技术:原理与应用 2018-03-06
45 技术:模型与可视化 2018-03-08
46 技术:美化与交互指南 2018-03-11
47 技术:高效操作指南 2018-03-14
48 技术:用法与优化技巧 2018-03-17
49 技术:效率提升指南 2018-03-18
50 技术:问题排查技巧 2018-03-18
51 技术:高效操作指南 2018-03-19
52 技术:方法与代码示例 2018-03-21
53 技术:进阶技巧与优化 2018-03-21
54 技术:实战示例 2018-03-22
55 技术:效率与规范指南 2018-03-24
56 技术:dplython包测评 2018-03-25
57 技术:原理与实现 2018-04-02
58 技术:原理与应用解析 2018-04-03
59 技术:实战指南 2018-04-05
60 技术:核心语法与函数整理 2018-04-05
61 技术:复利计算与应用 2018-04-08
62 技术:简单规则模型解析 2018-04-14
63 技术:高效代码设计指南 2018-04-25
64 技术:原理与应用学习笔记 2018-04-29
65 技术:实战指南 2018-04-29
66 技术:原理与应用 2018-05-01
67 技术:表格格式化指南 2018-05-02
68 技术:原理与应用介绍 2018-05-08
69 技术:高效文本拼接 2018-05-11
70 技术:方法与实践学习笔记 2018-05-12
71 技术:方法与工具 2018-05-12
72 技术:功能解析 2018-05-17
73 技术:高效数据输入 2018-05-21
74 技术:基础模型与方法 2018-05-22
75 技术:功能与使用体验 2018-05-26
76 技术:特征筛选学习笔记 2018-05-29
77 技术:实战技巧 2018-05-30
78 技术:建模思路解析 2018-06-03
79 技术:策略与实战 2018-06-03
80 技术:数据展示指南 2018-06-04
81 技术:包与环境配置指南 2018-07-14
82 技术:高效操作指南 2018-07-19
83 技术:方法与案例解析 2018-07-24
84 技术:统计建模学习笔记 2018-07-24
85 技术:展示技巧与原则 2018-08-10
86 技术:数据采集实战技巧 2018-08-21
87 技术:指标设计学习笔记 2018-09-20
88 技术:建模流程实战 2018-10-01
89 技术:大规模数据探索 2018-10-20
90 技术:文本提取与分析 2018-10-20
91 技术:原理与R实现实战 2018-10-21
92 技术:学习资源获取技巧 2018-10-23
93 技术:深度学习模型实战 2018-10-24
94 技术:实战指南 2018-10-30
95 技术:分析与展示指南 2018-11-03
96 技术:图片编辑与转换 2018-11-03
97 技术:安装与使用基础学习笔记 2018-11-07
98 技术:非结构化数据处理 2018-11-29
99 技术:表格美化技巧 2018-12-13
100 技术:分类数据可视化 2018-12-24
101 技术:流程图绘制技巧 2018-12-24
102 技术:自动化设置 2018-12-28
103 技术:协作与版本控制 2018-12-29
104 技术:pipeline设计 2018-12-30
105 技术:Git历史记录清理 2018-12-31
106 技术:AUC指标对比 2019-01-01
107 技术:时间序列可视化 2019-01-01
108 技术:变量命名工具指南 2019-01-02
109 技术:网页自动化截图 2019-01-02
110 技术:配置与优化 2019-01-03
111 技术:原理与应用 2019-01-07
112 技术:语法与核心概念 2019-01-14
113 技术:R包徽章设计 2019-01-15
114 技术:项目结构设计 2019-01-21
115 技术:文本分类基础任务 2019-01-22
116 技术:线性与非线性模型 2019-01-22
117 技术:有效性验证 2019-01-27
118 技术:评估与应用 2019-01-29
119 技术:循环神经网络入门 2019-01-30
120 技术:长短期记忆网络入门 2019-01-30
121 技术:基础到进阶 2019-02-06
122 技术:查询与整合 2019-02-06
123 技术:方法与案例 2019-02-14
124 技术:R包高效开发指南 2019-02-20
125 技术:解析与操作 2019-02-20
126 技术:训练与预测 2019-02-25
127 技术:原理与代码 2019-02-26
128 技术:GitHub个人访问令牌(PAT)设置 2019-03-04
129 技术:方法与工具 2019-03-07
130 技术:文本特征提取示例 2019-03-08
131 技术:基础任务示例 2019-03-18
132 技术:条形图与表头设计 2019-03-20
133 技术:连续与分类变量差异 2019-03-30
134 技术:思路与方法 2019-04-08
135 技术:方法与工具 2019-04-15
136 技术:多格式读取 2019-04-16
137 技术:方法与工具 2019-05-11
138 技术:Git/GitHub/GitLab 2019-05-13
139 技术:命令与操作 2019-05-19
140 技术:协作与版本控制 2019-05-26
141 技术:语法与实践 2019-06-28
142 技术:功能与API 2019-07-13
143 技术:安装与使用 2019-07-24
144 读《未来简史》:技术与未来 2019-09-14
145 技术:高效数据处理 2019-10-09
146 技术:性能优化技巧 2019-10-12
147 技术:配置与运维 2019-10-29
148 技术:原理与经典模型 2019-12-25
149 技术:构建到发布流程 2019-12-26
150 技术:方法与案例 2019-12-27
151 技术:命令与自动化 2019-12-30
152 技术:Pandas数据处理实战指南 2020-01-19
153 技术:特征工程之目标编码学习笔记 2020-01-20
154 技术:文档编写与美化 2020-01-28
155 技术:核心算法与应用 2020-01-29
156 技术:流程图绘制技巧 2020-01-29
157 技术:DataCamp课程笔记 2020-01-31
158 技术:Python实用代码片段合集 2020-01-31
159 技术:自动化构建流程 2020-02-02
160 技术:自动化工作流配置 2020-02-04
161 技术:高效查找代码与项目 2020-02-11
162 技术:代码环境快速部署 2020-02-24
163 技术:USD数据分析论文收录暨GitBook发布 2020-05-02
164 游记:西安博物院(5)西汉器物工艺到新莽技术应用 2020-10-01
165 技术:Causal Forest 2021-03-18
166 技术小团队人才培养思考:压力・复盘・沉淀 2024-05-21
167 BJ Fogg模型:从说服技术理论到行为设计实践 2024-11-24
168 管理视角:技术团队的核心交付是什么 2025-02-13
169 研读毛选:核心技术三大特征 2025-03-28