s*********y 发帖数: 6151 | 1 近期看到大家在讨论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****e 发帖数: 2125 | 2 因为生活很无聊
不来
【在 s*********y 的大作中提到】 : 近期看到大家在讨论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****t 发帖数: 31659 | 3 He need a solution in the cpp code. The csv file need to be ended as a cpp
array.
你可以推荐cpp轮子(老魏推荐过了)。
不来
【在 s*********y 的大作中提到】 : 近期看到大家在讨论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*********y 发帖数: 6151 | 4 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我
的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只
是需要牛奶
【在 g****t 的大作中提到】 : He need a solution in the cpp code. The csv file need to be ended as a cpp : array. : 你可以推荐cpp轮子(老魏推荐过了)。 : : 不来
|
g****t 发帖数: 31659 | 5 例如检测设备出来的csv,要计算基础统计。工厂生产线上这种活多了。
苏州无锡深圳各地工厂的数据,以前我都处理过。工厂操作员都是大专或者以下的人,
经常各种问题。对这种来源的数据处理,非常麻烦。
cpp写个单机版的tool,exe给他们自己用,挺好的。python有自己的麻烦。
【在 s*********y 的大作中提到】 : 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我 : 的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只 : 是需要牛奶
|
s*i 发帖数: 5025 | 6 完全赞成。
如果能顺手写好,最好。其次找个轮子即可。
否则 Premature optimization is the root of all evil。
比如老顾说的生产线上下来的数据,根本没那么dirty。花大量的时间在不会发生的
edge cases里纯属浪费。顺手写个parser或者找个轮子即可。
但是如果要写一个通用的parser,同意尽量cover所有的cases。
不来
【在 s*********y 的大作中提到】 : 近期看到大家在讨论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****t 发帖数: 31659 | 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的可执行文件全
包括。
【在 s*i 的大作中提到】 : 完全赞成。 : 如果能顺手写好,最好。其次找个轮子即可。 : 否则 Premature optimization is the root of all evil。 : 比如老顾说的生产线上下来的数据,根本没那么dirty。花大量的时间在不会发生的 : edge cases里纯属浪费。顺手写个parser或者找个轮子即可。 : 但是如果要写一个通用的parser,同意尽量cover所有的cases。 : : 不来
|
r****t 发帖数: 10904 | 8 csvtools 和 csvkit 都用过,都不错。
不来
【在 s*********y 的大作中提到】 : 近期看到大家在讨论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*******t 发帖数: 7549 | 9 不奇怪,比如我司backend基本全CPP,有个做offline conversion的组负则处理客户上
传的CSV,用PHP或CPP写一遍是没办法的事,一般不会因为(假设)Java有好用的lib就
往系统里添一个Java parser。当年我看了一下这个组的系统直接吓跑了,跟vendor传
的数据较劲太可怕。
那个楼主没给任何context,所以建议他先尝试易用的语言。
【在 s*********y 的大作中提到】 : 用CPP来处理文件系统 本身就很诡异 我们不了解他这么做的动机 但很多时候我 : 的经验是先问问你为什么要这样做? 很多时候客户说要买一头牛 其实你发现他只 : 是需要牛奶
|