今晚一个值得高兴的小事情

levelworm 2026-09-17 10:39 1

下午发现某个表数据有问题,从源头开始查起,发现很古怪,某些列出现 null 值,而 s3 里的 csv 看起来是好的。


心想可能是数据读入之后发生了改变,于是重启了某天的任务,发现照旧。于是决定仔细看看源数据。从 s3 上拉了一天的数据,导入到 duckdb ,发现的确没问题。更诡异的是,数据库里的数据我在 s3 里用 id 来查询,其实找不到。


于是决定去看看代码,一看是 Scala ,得这玩意我不熟悉,看了下发现就是个很简单的读入 csv 然后加了两列时间戳数据,没啥变化。


百思不得其解之下,决定仔细对比一下两个数据。因为这玩意有一百多列,所以之前偷懒没全看。这下每个列都列出来,一下子就发现问题,怎么数据偏移到其他列去了?当时就觉得大概是分离符是不是有点问题,毕竟是外头的数据,没洗干净是正常。但是首先 duckdb 没问题,Excel 也没啥问题,那就只好从头一列列对起。


最终发现是有一列断成了两列,于是这一列之后的数据全都偏移了。看了下,这列数据有""这种两个双引号的,心想大概是 escape 的问题,一查果然是,然后再查为啥 Scala 的代码不对呢?因为这看起来是个蛮普遍的问题--原来 Spark 下读入默认是用\来做 escape 。


发现原因了,其实最后加一行代码就完了。然后搭建本地的 Spark 环境,写了一小段 Scala 代码,用两种方式读入不同不同一个 csv 文件,做了个验证。搞定了之后明天提交补丁。


其实这应该是比较简单的问题,但是我不熟悉,就花了不少时间。我不喜欢写业务的 SQL ,但是很喜欢调试代码找错误,这下是过瘾了。

最新回复 (19)
  • Razio 09-17 11:07
    1
    debugger 真的很爽,并且干多了就能凭直觉判断问题。
  • pheyer 09-17 13:04
    2
    有了 ai ,就少了很多类似这样的乐趣
  • yahaoo 09-17 13:31
    3
    一步一步深入, 找到最终的答案, 这个过程就像解谜一样,会很有成就感。 现在只会把问题现象描述给 AI 。
  • clemente 09-17 13:32
    4
    想要回味并展示自己一步步排查定位技术难题的过程,享受排错解谜带来的成就感
  • heyjei 09-17 14:13
    5
    我也喜欢这个过程
  • zoofy 09-17 18:03
    6
    以前会这样一步步 debug ,现在直接就扔文件和错误信息给 ai 让它找问题了
  • jiehuangwei 09-17 19:37
    7
    这种做法是很久很久以前了,现在多少直接丢给 AI 。分分钟出结果啊,感觉自己没有存在的必要了
  • penisulaS 09-17 20:29
    8
    写 scala 对我来说是很久之前的事了,这个语言真让我感觉到几乎有无穷的变化,能玩出各种各样的元编程花活
  • Rickkkkkkk 09-17 21:24
    9
    你有用过 ai 看这个问题吗
  • zhw2590582 09-17 21:25
    10
    AI 会出手的
  • harrietliu 09-17 21:39
    11
    感觉 ai 还是要引导一下,不然也容易偏。有经验的话就是如虎添翼了,杂活给 ai
  • levelworm 楼主 09-17 21:41
    12
    @Razio #1
    的确,我还是喜欢这种活。现在特别希望能够进一个什么比如操作系统啊,或者编译器啊,或者随便什么系统软件的组,然后就让我一直写补丁,我擦我能写到死。
  • levelworm 楼主 09-17 21:41
    13
    @pheyer #2
    还行,因为我比较喜欢,所以主动限制 AI 的使用。不过我还是问了 AI 一些问题,因为我实在是不确定 Scala 的代码我理解的对不对。
  • levelworm 楼主 09-17 21:45
    14
    @heyjei #5
    是啊。我还是很羡慕在系统软件组里写补丁的朋友,整天在迷宫里琢磨,搞定了一个问题,可能就几行代码,但是之前可能是几个月的追踪。

    但是 AI 一来,很多人都用 AI 来提交补丁,这种乐趣,对于普通人来说,可能就不会再有了。除非是毫无现实价值的软件,没人去用 AI ,那可能还有点机会。

    所以我其实是不喜欢 AI 的。
  • levelworm 楼主 09-17 21:49
    15
    @penisulaS #8
    我其实还挺想学这个东西的,因为想学 packrat parsing ,据说代码编辑器需要这种算法来做渐进解析。不过的确是没精力了。而且我做数据工程的,现在 Scala 的东西越来越少了,我自己也是写 PySpark 的。
  • levelworm 楼主 09-17 21:49
    16
    @Rickkkkkkk #9
    因为我搞了一会没搞出来,就产生兴趣了,没让 AI 去看。但是后来我让 AI 去看 Scala ,因为我不懂 Scala 。
  • levelworm 楼主 09-17 22:48
    17
    @harrietliu #11
    是的,这种事情搞过一次,后续就快了。
  • dirstart 09-18 02:28
    18
    天生的程序员。最近刚好也发现 cf 有个 bug ,排查了老半天,就是有点浪费时间😂
    最怕花时间没有找到为什么,这个时候就很挫败啦
  • levelworm 楼主 09-18 04:09
    19
    @dirstart #18
    的确啊,没找到的话就越想找,不知不觉就熬夜了。。。我这四十多岁的人可吃不消。
* 帖子来源V2EX
返回