看帖神器
未名空间
追帖动态
头条新闻
每日新帖
最新热帖
新闻存档
热帖存档
文学城
虎扑论坛
未名空间
北美华人网
北美微论坛
看帖神器
登录
← 下载
《看帖神器》官方
iOS App
,体验轻松追帖。
为什么要重复造轮子?
查看未名空间今日新帖
最新回复:2020年7月20日 18点8分 PT
共 (9) 楼
返回列表
订阅追帖
只看未读
更多选项
阅读全帖
只看图片
只看视频
查看原帖
s
sunshineboy
大约 4 年
楼主 (未名空间)
近期看到大家在讨论parse 大文件比如csv的问题
楼主看了不仅有些技痒
csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划不来
如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
faster-than-your-hadoop-cluster.html
再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
MapReduce了 直接用Hive,Spark这类。
处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接用 重复造轮子 造螺丝得不偿失
h
helpme
大约 4 年
2 楼
因为生活很无聊
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
g
guvest
大约 4 年
3 楼
He need a solution in the cpp code. The csv file need to be ended as a cpp
array.
你可以推荐cpp轮子(老魏推荐过了)。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
s
sunshineboy
大约 4 年
4 楼
用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
是需要牛奶
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: He need a solution in the cpp code. The csv file need to be ended as a cpp: array.
: 你可以推荐cpp轮子(老魏推荐过了)。
: 不来
g
guvest
大约 4 年
5 楼
例如检测设备出来的csv,要计算基础统计。工厂生产线上这种活多了。
苏州无锡深圳各地工厂的数据,以前我都处理过。工厂操作员都是大专或者以下的人,经常各种问题。对这种来源的数据处理,非常麻烦。
cpp写个单机版的tool,exe给他们自己用,挺好的。python有自己的麻烦。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
: 的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
: 是需要牛奶
:
s
sui
大约 4 年
6 楼
完全赞成。
如果能顺手写好,最好。其次找个轮子即可。
否则 Premature optimization is the root of all evil。
比如老顾说的生产线上下来的数据,根本没那么dirty。花大量的时间在不会发生的
edge cases里纯属浪费。顺手写个parser或者找个轮子即可。
但是如果要写一个通用的parser,同意尽量cover所有的cases。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
g
guvest
大约 4 年
7 楼
[1]
parse能用库就用库,不要自己写。这点我从一开始就提出了啊。
csv parse不是一般人能写好的。
用c/cpp,不等于不用parse库。更不等于要重复造轮子。
c/cpp也有库啊。
但是用库要做好测试。
[2]
以前我在的公司,拿到的是各地手机厂和笔记本电脑厂自动检测station出来的数据。
出厂检测发现芯片问题,要找root cause,算统计。数据就是这么dirty。(当时用数学软件干这些活,python还没学)
[3]
假如做数据统计相关的tool给工厂用。你愿意个给国内工厂发个MSVC win32的exe文件
,还是指导他们装python的库?各人有各人选,但我不能认为cpp就完全不该用来处理
数据。其实是go最好。比cpp开发快,时新的库也比较多。出来个1,2M的可执行文件全包括。
【 在 sui (黑圈圈) 的大作中提到: 】
: 完全赞成。
: 如果能顺手写好,最好。其次找个轮子即可。
: 否则 Premature optimization is the root of all evil。
: 比如老顾说的生产线上下来的数据,根本没那么dirty。花大量的时间在不会发生的
: edge cases里纯属浪费。顺手写个parser或者找个轮子即可。
: 但是如果要写一个通用的parser,同意尽量cover所有的cases。
: 不来
r
repast
大约 4 年
8 楼
csvtools 和 csvkit 都用过,都不错。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
f
fantasist
大约 4 年
9 楼
不奇怪,比如我司backend基本全CPP,有个做offline conversion的组负则处理客户上传的CSV,用PHP或CPP写一遍是没办法的事,一般不会因为(假设)Java有好用的lib就往系统里添一个Java parser。当年我看了一下这个组的系统直接吓跑了,跟vendor传
的数据较劲太可怕。
那个楼主没给任何context,所以建议他先尝试易用的语言。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
: 的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
: 是需要牛奶
:
请输入帖子链接
收藏帖子
近期看到大家在讨论parse 大文件比如csv的问题
楼主看了不仅有些技痒
csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划不来
如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
faster-than-your-hadoop-cluster.html
再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
MapReduce了 直接用Hive,Spark这类。
处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接用 重复造轮子 造螺丝得不偿失
因为生活很无聊
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
He need a solution in the cpp code. The csv file need to be ended as a cpp
array.
你可以推荐cpp轮子(老魏推荐过了)。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
是需要牛奶
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: He need a solution in the cpp code. The csv file need to be ended as a cpp: array.
: 你可以推荐cpp轮子(老魏推荐过了)。
: 不来
例如检测设备出来的csv,要计算基础统计。工厂生产线上这种活多了。
苏州无锡深圳各地工厂的数据,以前我都处理过。工厂操作员都是大专或者以下的人,经常各种问题。对这种来源的数据处理,非常麻烦。
cpp写个单机版的tool,exe给他们自己用,挺好的。python有自己的麻烦。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
: 的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
: 是需要牛奶
:
完全赞成。
如果能顺手写好,最好。其次找个轮子即可。
否则 Premature optimization is the root of all evil。
比如老顾说的生产线上下来的数据,根本没那么dirty。花大量的时间在不会发生的
edge cases里纯属浪费。顺手写个parser或者找个轮子即可。
但是如果要写一个通用的parser,同意尽量cover所有的cases。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
[1]
parse能用库就用库,不要自己写。这点我从一开始就提出了啊。
csv parse不是一般人能写好的。
用c/cpp,不等于不用parse库。更不等于要重复造轮子。
c/cpp也有库啊。
但是用库要做好测试。
[2]
以前我在的公司,拿到的是各地手机厂和笔记本电脑厂自动检测station出来的数据。
出厂检测发现芯片问题,要找root cause,算统计。数据就是这么dirty。(当时用数学软件干这些活,python还没学)
[3]
假如做数据统计相关的tool给工厂用。你愿意个给国内工厂发个MSVC win32的exe文件
,还是指导他们装python的库?各人有各人选,但我不能认为cpp就完全不该用来处理
数据。其实是go最好。比cpp开发快,时新的库也比较多。出来个1,2M的可执行文件全包括。
【 在 sui (黑圈圈) 的大作中提到: 】
: 完全赞成。
: 如果能顺手写好,最好。其次找个轮子即可。
: 否则 Premature optimization is the root of all evil。
: 比如老顾说的生产线上下来的数据,根本没那么dirty。花大量的时间在不会发生的
: edge cases里纯属浪费。顺手写个parser或者找个轮子即可。
: 但是如果要写一个通用的parser,同意尽量cover所有的cases。
: 不来
csvtools 和 csvkit 都用过,都不错。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 近期看到大家在讨论parse 大文件比如csv的问题
: 楼主看了不仅有些技痒
: csv这类文件的分析处理 都有很成熟的轮子 用什么语言自己写一个 其实划
不来
: 如果文件总量不大(<100GB) 工作不复杂="" 推荐直接用bash="" tool来做="" 又快又好="">: 具体参照这篇文章 https://adamdrake.com/command-line-tools-can-be-235x-
: faster-than-your-hadoop-cluster.html
: 再大一点的数据 复杂一点的逻辑 用MapReduce平台做 当然现在没人直接写
: MapReduce了 直接用Hive,Spark这类。
: 处理数据应该站在高一点的抽象层 以解决business logic问题为目的 有好轮子直接
: 用 重复造轮子 造螺丝得不偿失
不奇怪,比如我司backend基本全CPP,有个做offline conversion的组负则处理客户上传的CSV,用PHP或CPP写一遍是没办法的事,一般不会因为(假设)Java有好用的lib就往系统里添一个Java parser。当年我看了一下这个组的系统直接吓跑了,跟vendor传
的数据较劲太可怕。
那个楼主没给任何context,所以建议他先尝试易用的语言。
【 在 sunshineboy (阳光男孩) 的大作中提到: 】
: 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
: 的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
: 是需要牛奶
: