.NET与大数据 您所在的位置:网站首页 python写的程序别人电脑用 .NET与大数据

.NET与大数据

2023-03-25 18:33| 来源: 网络整理| 查看: 265

前言

当别人做大数据用Java、Python的时候,我使用.NET做大数据、数据挖掘,这确实是值得一说的事。写的并不全面,但都是实际工作中的内容。

.NET在大数据项目中,可以做什么?写脚本(使用控制台程序+顶级语句)写工具(使用Winform)写接口、写服务使用C#写代码的优点是什么?静态类型+匿名类型,一次性使用的实体类就用匿名类型,多次或多个地方使用的实体类就用静态类型,静态类型优于Python,匿名类型优于Java。你是不是想说Python也有静态类型?你倒是写啊?!代码的可维护性好,这是相对于Python说的,不一定是语言的锅,还有固有的代码组织习惯,静态类型本身就是很好的注释性能好,异步并发的代码易编写。想起来一个事,就是前同事用Python2做数据挖掘,先用的es,性能差,改用的clickhouse,我就纳闷,es性能差?现在我想我明白了,我看了其中一个挖掘算法,它需要在双层循环遍历中去请求es进行查询,它没有使用异步,也没有使用多线程,那不就是一个线程在查询吗?我们现网es服务器配置这么强这么多,它居然用一个线程去同步请求,能快才怪!实际上一个请求耗时极短,因为es有各种缓存,而查询条件精确可以命中缓存,所以可以并发请求多个es节点。那前同事为什么没有使用异步并发或多线程呢?Python2不支持吗?或者Python2支持,但写起来不方便?或者前同事不会写?(原因:写起来不方便,C#一样也不太方便,而且会使整个程序的并发请求量变得难以控制,可以针对某个接口单独优化,但所有接口都这样写,也挺麻烦的)使用.NET开发的优点是什么?

其中一个优点是应用程序类型丰富,目前我用到的应用程序类型有:

控制台WinformWeb APIBlazor你是不是想说Java和Python也可以写控制台、窗体程序、Web API?一个熟悉Ptyhon的程序员,可不一定会写窗体程序,需要一点时间学习,一个做了几年.NET的程序员天然会写Winform,就是拖控件啊。当然,也可能他们不用Windows。每一种应用程序类型,都意味着学习成本,而这些我已经会了,时间就省下了(Blazor一开始不会,学习花了一两天)。.NET与ClickHouse

我写了一个大杂烩脚本项目,里面有很多工程是查询ClickHouse统计分析,代码流程就是读取Excel数据作为查询输入条件,查询ClickHouse统计分析,统计结果导出到Excel。一个统计分析工作任务小半天就完成了。用的ORM是我自己写的Dapper.LiteSql。没什么人用,可能是功能不强吧。不过很适合我自己的需求,我自己经常用。比如:

int count = session.CreateSql(@" select count(distinct t.xxx, t.xxx, t.xxx) as cnt from xxx t ") .Where(t => t.PassTime >= startTime && t.PassTime t.PassTime >= firstTime && t.PassTime plateList.Skip((page - 1) * pageSize).Take(pageSize).ToList().Contains(t.PlateNo)); var temp = query.ToList();

对于统计查询,我经常SQL和Lambda表达式混写,感觉这样非常灵活。某些情况下,混写比纯Lambda写法,是要清晰的:

List list = session.CreateSql(@" select xxx, xxx as xxx, max(xxx) as xxx from ( select xxx, toDate(xxx) as xxx, xxx, count(*) as xxx from ( select distinct t.xxx, t.xxx, t.xxx from xxx t ").Where(t => t.Xxx != "xxx") .Where(t => t.XxxTime >= startTime && t.XxxTime xxxList.Contains(t.Xxx)) .Where(@"( (formatDateTime(t.xxx_time ,'%H:%M:%S') >= '07:00:00' and formatDateTime(t.xxx_time ,'%H:%M:%S') = '14:00:00' and formatDateTime(t.xxx_time ,'%H:%M:%S')


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有