侵权投诉

Spark SQL的概念及查询方式

数据分析与开发 2021-09-02 15:44 次阅读

一、Spark SQL的概念理解

Spark SQL是spark套件中一个模板,它将数据的计算任务通过SQL的形式转换成了RDD的计算,类似于Hive通过SQL的形式将数据的计算任务转换成了MapReduce。

Spark SQL的特点:

和Spark Core的无缝集成,可以在写整个RDD应用的时候,配置Spark SQL来完成逻辑实现。

统一的数据访问方式,Spark SQL提供标准化的SQL查询。

Hive的继承,Spark SQL通过内嵌的hive或者连接外部已经部署好的hive案例,实现了对hive语法的继承和操作。

标准化的连接方式,Spark SQL可以通过启动thrift Server来支持JDBC、ODBC的访问,将自己作为一个BI Server使用

Spark SQL数据抽象:

RDD(Spark1.0)-》DataFrame(Spark1.3)-》DataSet(Spark1.6)

Spark SQL提供了DataFrame和DataSet的数据抽象

DataFrame就是RDD+Schema,可以认为是一张二维表格,劣势在于编译器不进行表格中的字段的类型检查,在运行期进行检查

DataSet是Spark最新的数据抽象,Spark的发展会逐步将DataSet作为主要的数据抽象,弱化RDD和DataFrame.DataSet包含了DataFrame所有的优化机制。除此之外提供了以样例类为Schema模型的强类型

DataFrame=DataSet[Row]

DataFrame和DataSet都有可控的内存管理机制,所有数据都保存在非堆上,都使用了catalyst进行SQL的优化。

Spark SQL客户端查询:

可以通过Spark-shell来操作Spark SQL,spark作为SparkSession的变量名,sc作为SparkContext的变量名

可以通过Spark提供的方法读取json文件,将json文件转换成DataFrame

可以通过DataFrame提供的API来操作DataFrame里面的数据。

可以通过将DataFrame注册成为一个临时表的方式,来通过Spark.sql方法运行标准的SQL语句来查询。

二、Spark SQL查询方式

DataFrame查询方式

DataFrame支持两种查询方式:一种是DSL风格,另外一种是SQL风格

(1)、DSL风格:

需要引入import spark.implicit. _ 这个隐式转换,可以将DataFrame隐式转换成RDD

(2)、SQL风格:

a、需要将DataFrame注册成一张表格,如果通过CreateTempView这种方式来创建,那么该表格Session有效,如果通过CreateGlobalTempView来创建,那么该表格跨Session有效,但是SQL语句访问该表格的时候需要加上前缀global_temp

b、需要通过sparkSession.sql方法来运行你的SQL语句

DataSet查询方式

定义一个DataSet,先定义一个Case类

三、DataFrame、Dataset和RDD互操作

RDD-》DataFrame

普通方式:例如rdd.map(para(para(0).trim(),para(1).trim().toInt)).toDF(“name”,“age”)

通过反射来设置schema,例如:

#通过反射设置schema,数据集是spark自带的people.txt,路径在下面的代码中case class Person(name:String,age:Int)

val peopleDF=spark.sparkContext.textFile(“file:///root/spark/spark2.4.1/examples/src/main/resources/people.txt”).map(_.split(“,”)).map(para=》Person(para(0).trim,para(1).trim.toInt)).toDF

peopleDF.show

8a20a542-0bb0-11ec-8fb8-12bb97331649.png

#注册成一张临时表

peopleDF.createOrReplaceTempView(“persons”)

val teen=spark.sql(“select name,age from persons where age between 13 and 29”)

teen.show

8a301b1c-0bb0-11ec-8fb8-12bb97331649.png

这时teen是一张表,每一行是一个row对象,如果需要访问Row对象中的每一个元素,可以通过下标 row(0);你也可以通过列名 row.getAs[String](“name”)

8a3be46a-0bb0-11ec-8fb8-12bb97331649.png

也可以使用getAs方法:

8a45a978-0bb0-11ec-8fb8-12bb97331649.png

3、通过编程的方式来设置schema,适用于编译器不能确定列的情况

val peopleRDD=spark.sparkContext.textFile(“file:///root/spark/spark2.4.1/examples/src/main/resources/people.txt”)

val schemaString=“name age”

val filed=schemaString.split(“ ”).map(filename=》 org.apache.spark.sql.types.StructField(filename,org.apache.spark.sql.types.StringType,nullable = true))

val schema=org.apache.spark.sql.types.StructType(filed)

peopleRDD.map(_.split(“,”)).map(para=》org.apache.spark.sql.Row(para(0).trim,para(1).trim))

val peopleDF=spark.createDataFrame(res6,schema)

peopleDF.show

8a52119a-0bb0-11ec-8fb8-12bb97331649.png

8a5ddf02-0bb0-11ec-8fb8-12bb97331649.png

8a6a9cb0-0bb0-11ec-8fb8-12bb97331649.png

DataFrame-》RDD

dataFrame.rdd

RDD-》DataSet

rdd.map(para=》 Person(para(0).trim(),para(1).trim().toInt)).toDS

DataSet-》DataSet

dataSet.rdd

DataFrame -》 DataSet

dataFrame.to[Person]

DataSet -》 DataFrame

dataSet.toDF

四、用户自定义函数

用户自定义UDF函数

通过spark.udf功能用户可以自定义函数

自定义udf函数:

通过spark.udf.register(name,func)来注册一个UDF函数,name是UDF调用时的标识符,fun是一个函数,用于处理字段。

需要将一个DF或者DS注册为一个临时表

通过spark.sql去运行一个SQL语句,在SQL语句中可以通过name(列名)方式来应用UDF函数

用户自定义聚合函数

1. 弱类型用户自定义聚合函数

新建一个Class 继承UserDefinedAggregateFunction ,然后复写方法:

//聚合函数需要输入参数的数据类型

override def inputSchema: StructType = ???

//可以理解为保存聚合函数业务逻辑数据的一个数据结构

override def bufferSchema: StructType = ???

// 返回值的数据类型

override def dataType: DataType = ???

// 对于相同的输入一直有相同的输出

override def deterministic: Boolean = true

//用于初始化你的数据结构

override def initialize(buffer: MutableAggregationBuffer): Unit = ???

//用于同分区内Row对聚合函数的更新操作

override def update(buffer: MutableAggregationBuffer, input: Row): Unit = ???

//用于不同分区对聚合结果的聚合。

override def merge(buffer1: MutableAggregationBuffer, buffer2: Row): Unit = ???

//计算最终结果

override def evaluate(buffer: Row): Any = ???

你需要通过spark.udf.resigter去注册你的UDAF函数。

需要通过spark.sql去运行你的SQL语句,可以通过 select UDAF(列名) 来应用你的用户自定义聚合函数。

2、强类型用户自定义聚合函数

新建一个class,继承Aggregator[Employee, Average, Double],其中Employee是在应用聚合函数的时候传入的对象,Average是聚合函数在运行的时候内部需要的数据结构,Double是聚合函数最终需要输出的类型。这些可以根据自己的业务需求去调整。复写相对应的方法:

//用于定义一个聚合函数内部需要的数据结构

override def zero: Average = ???

//针对每个分区内部每一个输入来更新你的数据结构

override def reduce(b: Average, a: Employee): Average = ???

//用于对于不同分区的结构进行聚合

override def merge(b1: Average, b2: Average): Average = ???

//计算输出

override def finish(reduction: Average): Double = ???

//用于数据结构他的转换

override def bufferEncoder: Encoder[Average] = ???

//用于最终结果的转换

override def outputEncoder: Encoder[Double] = ???

新建一个UDAF实例,通过DF或者DS的DSL风格语法去应用。

五、Spark SQL和Hive的继承

1、内置Hive

Spark内置有Hive,Spark2.1.1 内置的Hive是1.2.1。

需要将core-site.xml和hdfs-site.xml 拷贝到spark的conf目录下。如果Spark路径下发现metastore_db,需要删除【仅第一次启动的时候】。

在你第一次启动创建metastore的时候,你需要指定spark.sql.warehouse.dir这个参数, 比如:bin/spark-shell --conf spark.sql.warehouse.dir=hdfs://master01:9000/spark_warehouse

注意,如果你在load数据的时候,需要将数据放到HDFS上。

2、外部Hive(这里主要使用这个方法)

需要将hive-site.xml 拷贝到spark的conf目录下。

如果hive的metestore使用的是mysql数据库,那么需要将mysql的jdbc驱动包放到spark的jars目录下。

可以通过spark-sql或者spark-shell来进行sql的查询。完成和hive的连接。

8a76fc9e-0bb0-11ec-8fb8-12bb97331649.png

这就是hive里面的表

8a89228e-0bb0-11ec-8fb8-12bb97331649.png

六、Spark SQL的数据源

1、输入

对于Spark SQL的输入需要使用sparkSession.read方法

通用模式 sparkSession.read.format(“json”).load(“path”) 支持类型:parquet、json、text、csv、orc、jdbc

专业模式 sparkSession.read.json、 csv 直接指定类型。

2、输出

对于Spark SQL的输出需要使用 sparkSession.write方法

通用模式 dataFrame.write.format(“json”).save(“path”) 支持类型:parquet、json、text、csv、orc

专业模式 dataFrame.write.csv(“path”) 直接指定类型

如果你使用通用模式,spark默认parquet是默认格式、sparkSession.read.load 加载的默认是parquet格式dataFrame.write.save也是默认保存成parquet格式。

如果需要保存成一个text文件,那么需要dataFrame里面只有一列(只需要一列即可)。

七、Spark SQL实战

1、数据说明

这里有三个数据集,合起来大概有几十万条数据,是关于货品交易的数据集。

8aa849d4-0bb0-11ec-8fb8-12bb97331649.png

2、任务

这里有三个需求:

计算所有订单中每年的销售单数、销售总额

计算所有订单每年最大金额订单的销售额

计算所有订单中每年最畅销货品

3、步骤

1. 加载数据

tbStock.txt

#代码case class tbStock(ordernumber:String,locationid:String,dateid:String) extends Serializable

val tbStockRdd=spark.sparkContext.textFile(“file:///root/dataset/tbStock.txt”)

val tbStockDS=tbStockRdd.map(_.split(“,”)).map(attr=》tbStock(attr(0),attr(1),attr(2))).toDS

tbStockDS.show()

8ab2028a-0bb0-11ec-8fb8-12bb97331649.png8ac01d7a-0bb0-11ec-8fb8-12bb97331649.png8ad1cfc0-0bb0-11ec-8fb8-12bb97331649.png

8adee8f4-0bb0-11ec-8fb8-12bb97331649.png

tbStockDetail.txt

case class tbStockDetail(ordernumber:String,rownum:Int,itemid:String,number:Int,price:Double,amount:Double) extends Serializable

val tbStockDetailRdd=spark.sparkContext.textFile(“file:///root/dataset/tbStockDetail.txt”)

val tbStockDetailDS=tbStockDetailRdd.map(_.split(“,”)).map(attr=》tbStockDetail(attr(0),attr(1).trim().toInt,attr(2),attr(3).trim().toInt,attr(4).trim().toDouble,attr(5).trim().toDouble)).toDS

tbStockDetailDS.show()

8af1d2de-0bb0-11ec-8fb8-12bb97331649.png8b00fd68-0bb0-11ec-8fb8-12bb97331649.png

8b0bcd88-0bb0-11ec-8fb8-12bb97331649.png

8b305a72-0bb0-11ec-8fb8-12bb97331649.png

tbDate.txt

case class tbDate(dateid:String,years:Int,theyear:Int,month:Int,day:Int,weekday:Int,week:Int,quarter:Int,period:Int,halfmonth:Int) extends Serializable

val tbDateRdd=spark.sparkContext.textFile(“file:///root/dataset/tbDate.txt”)

val tbDateDS=tbDateRdd.map(_.split(“,”)).map(attr=》tbDate(attr(0),attr(1).trim().toInt,attr(2).trim().toInt,attr(3).trim().toInt,attr(4).trim().toInt,attr(5).trim().toInt,attr(6).trim().toInt,attr(7).trim().toInt,attr(8).trim().toInt,attr(9).trim().toInt)).toDS

tbDateDS.show()

8b45157a-0bb0-11ec-8fb8-12bb97331649.png8b5182f6-0bb0-11ec-8fb8-12bb97331649.png

8b638f14-0bb0-11ec-8fb8-12bb97331649.png

8b7541be-0bb0-11ec-8fb8-12bb97331649.png

2. 注册表

tbStockDS.createOrReplaceTempView(“tbStock”)

tbDateDS.createOrReplaceTempView(“tbDate”)

tbStockDetailDS.createOrReplaceTempView(“tbStockDetail”)

8b829b66-0bb0-11ec-8fb8-12bb97331649.png

3. 解析表

计算所有订单中每年的销售单数、销售总额

#sql语句

select c.theyear,count(distinct a.ordernumber),sum(b.amount)

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

join tbDate c on a.dateid=c.dateid

group by c.theyear

order by c.theyear

8b8fb152-0bb0-11ec-8fb8-12bb97331649.png

计算所有订单每年最大金额订单的销售额

a、先统计每年每个订单的销售额

select a.dateid,a.ordernumber,sum(b.amount) as SumOfAmount

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

group by a.dateid,a.ordernumber

8ba32660-0bb0-11ec-8fb8-12bb97331649.png

b、计算最大金额订单的销售额

select d.theyear,c.SumOfAmount as SumOfAmount

from

(select a.dateid,a.ordernumber,sum(b.amount) as SumOfAmount

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

group by a.dateid,a.ordernumber) c

join tbDate d on c.dateid=d.dateid

group by d.theyear

order by theyear desc

8bb0abfa-0bb0-11ec-8fb8-12bb97331649.png

计算所有订单中每年最畅销货品

a、求出每年每个货品的销售额

select c.theyear,b.itemid,sum(b.amount) as SumOfAmount

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

join tbDate c on a.dateid=c.dateid

group by c.theyear,b.itemid

8bc427c0-0bb0-11ec-8fb8-12bb97331649.png

b、在a的基础上,统计每年单个货品的最大金额

select d.theyear,max(d.SumOfAmount) as MaxOfAmount

from

(select c.theyear,b.itemid,sum(b.amount) as SumOfAmount

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

join tbDate c on a.dateid=c.dateid

group by c.theyear,b.itemid) d

group by theyear

8bd5482a-0bb0-11ec-8fb8-12bb97331649.png

c、用最大销售额和统计好的每个货品的销售额join,以及用年join,集合得到最畅销货品那一行信息

select distinct e.theyear,e.itemid,f.maxofamount

from

(select c.theyear,b.itemid,sum(b.amount) as sumofamount

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

join tbDate c on a.dateid=c.dateid

group by c.theyear,b.itemid) e

join

(select d.theyear,max(d.sumofamount) as maxofamount

from

(select c.theyear,b.itemid,sum(b.amount) as sumofamount

from tbStock a

join tbStockDetail b on a.ordernumber=b.ordernumber

join tbDate c on a.dateid=c.dateid

group by c.theyear,b.itemid) d

group by d.theyear) f on e.theyear=f.theyear

and e.sumofamount=f.maxofamount order by e.theyear

8be25894-0bb0-11ec-8fb8-12bb97331649.png

编辑:jq

原文标题:Spark SQL 重点知识总结

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

SQL审核工具SQLE分享 面向数据库使用者和管理者的SQL审核工具

SQL 审核组件 SQLE 在 2017 、2018 年和 2019 年的 10 月 24 日,爱可....
的头像 科技见闻网 发表于 10-28 18:35 105次 阅读
SQL审核工具SQLE分享  面向数据库使用者和管理者的SQL审核工具

数据结构与算法中什么是最小生成树

  前言 在数据结构与算法的 图论 中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算....
的头像 算法与数据结构 发表于 10-28 17:13 56次 阅读

浅析Xilinx系列FPGA Select IO简介

在SelectIO简介连载一中介绍了其架构,本章会继续介绍如何使用其gearbox功能来实现不同的比....
的头像 FPGA开发圈 发表于 10-28 16:46 131次 阅读
浅析Xilinx系列FPGA Select IO简介

使用Vivado仿真器进行混合语言仿真的一些要点

Vivado 仿真器支持混合语言项目文件及混合语言仿真。这有助于您在 VHDL 设计中包含 Veri....
的头像 FPGA开发圈 发表于 10-28 16:24 69次 阅读

STM32标准库和HAL库有什么不同 我们怎么用

摘要:通常 新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程....
的头像 硬件攻城狮 发表于 10-28 15:38 78次 阅读
STM32标准库和HAL库有什么不同 我们怎么用

台积电称美国半导体供应链不完整

台积电公司CEO张忠谋近日表示:美国半导体供应链目前并不不完整,在美国建新厂的成本将比中国大陆高出3....
的头像 lhl545545 发表于 10-28 10:37 231次 阅读

华为全面开放手语服务

【2021年10月22日·东莞】华为开发者大会2021(Together)在东莞松山湖正式开幕。本次....
的头像 华为终端云服务+ 发表于 10-28 09:55 206次 阅读

区分SQL语句与主语言语句

为了区分SQL语句与主语言语句,所有SQL 语句必须加前缀EXEC SQL处理过程:含嵌入式SQL语句的主语言程序预编译程...
发表于 10-28 08:44 0次 阅读

如何对stm32的SPI进行测试呢

如何对stm32的SPI进行测试呢?其过程是怎样的?...
发表于 10-28 08:29 0次 阅读

如何去实现基于STM32L0的简单Bootloader呢

如何去实现基于STM32L0的简单Bootloader呢?怎么实现呢?...
发表于 10-28 06:07 0次 阅读

2021 OPPO开发者大会:OPPO满足开发者需求

2021 OPPO开发者大会:OPPO满足开发者需求 2021 OPPO开发者大会上介绍了开发者需求....
的头像 璟琰乀 发表于 10-27 14:40 256次 阅读
2021 OPPO开发者大会:OPPO满足开发者需求

特斯拉Q3财报显示利润率高出天际,赚钱不靠“卖碳”了

10月22日,特斯拉如期公布了Q3财报,虽然马斯克没有出席财报会议,但这次会议带来的信息足以震撼各大....
的头像 电子发烧友网 发表于 10-27 10:41 309次 阅读

oppo开发者大会2021时间表

2021 OPPO开发者大会于10月27日在上海举办,在OPPO开发者大会上,将为开发者和创作者分享....
的头像 lhl545545 发表于 10-27 09:25 122次 阅读

python提供的68个内置函数详解

  内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等。 截止到p....
的头像 数据分析与开发 发表于 10-27 09:14 64次 阅读

怎样向DS1302时钟芯片写入数据和读取数据呢

怎样向DS1302时钟芯片写入数据和读取数据呢?
发表于 10-27 07:55 0次 阅读

请问网络中IP数据报传输的过程是怎样的?

请问网络中IP数据报传输的过程是怎样的?
发表于 10-27 07:03 0次 阅读

NVIC中断优先级管理简介

如何对NVIC中断管理函数进行配置? 中断优先级设置的步骤有哪些? ...
发表于 10-27 06:59 0次 阅读

static的作用是什么

文章目录关键字static的作用是什么?“引用”与指针的区别是什么?.h头文件中的ifndef/define/endif 的作用?描述实时系统的基本...
发表于 10-27 06:22 0次 阅读

易路:PeopleAnalytics的发展趋势及对HR的启示

本文由易路人力资源科技特邀作者Jeff Luo原创 作者简介:罗粤海Jeff,英国杜伦大学 (Dur....
的头像 话说科技 发表于 10-26 14:29 141次 阅读
易路:PeopleAnalytics的发展趋势及对HR的启示

浅析C++基础语法梳理之网络编程中Socket

Socket Linux Socket 编程(不限 Linux) Socket 中的 read()、....
的头像 C语言编程学习基地 发表于 10-26 10:10 235次 阅读
浅析C++基础语法梳理之网络编程中Socket

浅析C++基础语法之计算机网络中传输层(TCP&UDP)

运输层 协议: TCP(Transmission Control Protocol,传输控制协议) ....
的头像 C语言编程学习基地 发表于 10-26 10:07 130次 阅读
浅析C++基础语法之计算机网络中传输层(TCP&UDP)

如何将python打包后的exe还原成py

用到的工具 pyinstxtractor.py 拆包(解压)工具,将exe文件解压成一个文件夹 un....
的头像 马哥Linux运维 发表于 10-26 09:56 139次 阅读
如何将python打包后的exe还原成py

Go语言sync包中的锁都在什么场景下用

Go 语言 sync 包中的锁都在什么场景下用?怎么用?本文对 sync 包内的锁做了梳理。 今天谈....
的头像 马哥Linux运维 发表于 10-26 09:35 147次 阅读

如何抓住这种需求激增所带来的物联网市场机会

  随着技术的发展,连网设备的数量正在迅速增加。事实上,据估计,目前每秒钟有 127 台新设备连接到....
的头像 物联网智慧城市D1net 发表于 10-26 09:10 358次 阅读

怎样通过串口通信去控制LED灯亮和灭呢

怎样通过串口通信去控制LED灯亮和灭呢?有什么方法吗?...
发表于 10-26 06:39 0次 阅读

STM32 LL库的使用方法是什么

LL库有哪些应用?LL驱动程序功能有哪些?LL库的使用方法是什么?...
发表于 10-26 06:31 0次 阅读

怎样去解决stm32调试(debug)无法进入main函数的问题

怎样去解决stm32调试(debug)无法进入main函数的问题?...
发表于 10-26 06:23 0次 阅读

解析过冲与相位裕量

负反馈因其可以稳定增益、减小失真、扩展带宽、变换阻抗等功能而在电子、控制等诸多领域发挥着重大作用。小....
的头像 电子元件技术圈 发表于 10-25 11:32 229次 阅读
解析过冲与相位裕量

如何选择异常检测算法

异常检测(也称为离群点检测)是检测异常实例的任务,异常实例与常规实例非常不同。这些实例称为异常或离群....
的头像 Imagination Tech 发表于 10-25 09:15 170次 阅读

华为开发者大会2021智能硬件开发—正确的数据分级分类

2021年10月22日~24日,华为将在中国松山湖举行2021华为开发者大会,聚焦鸿蒙系统、智能家居....
的头像 汽车玩家 发表于 10-23 15:21 177次 阅读
华为开发者大会2021智能硬件开发—正确的数据分级分类

华为开发者HarmonyOS零基础入门:UI组件设计开发实践

华为开发者HarmonyOS零基础入门:UI组件设计开发实践之图库应用介绍,应用数据加载显示模型图片....
的头像 lhl545545 发表于 10-23 10:58 229次 阅读
华为开发者HarmonyOS零基础入门:UI组件设计开发实践

华为开发者HarmonyOS零基础入门:系统能力调用示例

华为开发者HarmonyOS零基础入门:系统能力调用示例,修改组件属性页面加载参数接收数据连接,优化....
的头像 lhl545545 发表于 10-23 10:44 246次 阅读
华为开发者HarmonyOS零基础入门:系统能力调用示例

分布式锁三个属性和两大类

“分布式锁”这个问题快被说烂了,奈何笔者实在没有找到一个满意的答案,故记录自己寻找答案、总结的过程。....
的头像 数据分析与开发 发表于 10-22 17:30 303次 阅读

埋点实践过程中遇到的一些问题

埋点本身现在已经有太多的集成解决方案,神策、诸葛IO、GIO,但是在实践的过程中仍然还是会碰都很多问....
的头像 数据分析与开发 发表于 10-22 16:33 261次 阅读

支持数据转发和基于FPGA的图像处理卸载的图像采集卡

单输入至四输入的CoaXPress 2.0图像采集卡,支持数据转发和基于FPGA的图像处理卸载 用于....
的头像 广州虹科电子科技有限公司 发表于 10-22 10:38 979次 阅读
支持数据转发和基于FPGA的图像处理卸载的图像采集卡

思迈特软件Smartbi:数据看板搭建的常见错误分析

但在实际工作中,由于拉新、留存、转化分别由市场、产品、运营三个部门负责,用户增长数据分隔在三个部门的....
发表于 10-22 10:37 37次 阅读

北明软件参加华为开发者大会2021

据消息,北明软件参加华为开发者大会2021,北明软件将通过“软件定义世界,数据驱动未来”愿景,全方位....
的头像 lhl545545 发表于 10-22 09:31 329次 阅读

NVIDIA为轻量级地图和精确感知提供高性能计算

NVIDIA DRIVE Orin为轻量级地图和精确感知提供高性能计算。 自动驾驶卡车需要减轻绘制地....
的头像 NVIDIA英伟达企业解决方案 发表于 10-22 09:26 199次 阅读

浅析数据分析之指标设计

数据指标,并不是数据分析和业务同学的专属模块。日常会用到数据指标的,还包括开发(比如机器资源利用率,....
的头像 数据分析与开发 发表于 10-21 14:27 233次 阅读

数据分析如何中看又中用?送你一套方案大大提升工作效率

相信大多数永洪BI的用户都和我有着同一个苦恼,报告做得越来越复杂后,要找到某个组件变难了。只能点击到....
发表于 10-21 10:16 94次 阅读
数据分析如何中看又中用?送你一套方案大大提升工作效率

GPIB仪器控制设备使用GPIB接口将仪器集成到系统中

NI 致力于为半导体、电子、交通运输、航空航天与国防、学术等诸多领域的客户提供服务,主要产品包括数据....
的头像 易络盟电子 发表于 10-20 17:28 369次 阅读

曙光政务数据中台系统江苏工信厅重点首版产品公示

近日,江苏省工业和信息化厅发布了“2021年江苏省重点领域首版次软件产品征集拟推广首版次软件产品名单....
的头像 中科曙光 发表于 10-20 16:36 406次 阅读

详细介绍go语言中的闭包的实现

什么是闭包? 什么场景下会用闭包 ? 本文对 go 语言中的闭包做了详细介绍。 闭包是由函数及其相关....
的头像 马哥Linux运维 发表于 10-20 16:18 296次 阅读

简述Python加速运行小窍门

Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,....
的头像 Linux爱好者 发表于 10-20 15:28 1110次 阅读

简述ElasticSearch的实现

1.近实时搜索 1.1 实时与近实时 实时搜索(Real-time Search)很好理解,对于一个....
的头像 马哥Linux运维 发表于 10-20 14:45 305次 阅读

Python协程与JavaScript协程的对比及经验技巧

前言以前没怎么接触前端,对 JavaScript 的异步操作不了解,现在有了点了解。一查发现 Pyt....
的头像 马哥Linux运维 发表于 10-20 14:30 244次 阅读

探究超大Transformer语言模型的分布式训练框架

NVIDIA Megatron 是一个基于 PyTorch 的框架,用于训练基于 Transform....
的头像 NVIDIA英伟达企业解决方案 发表于 10-20 09:25 386次 阅读

一种通过配方功能实现简单高效控制的方法解析

1 前言 物联网的应用大多基于对各种数据的采集和控制,而一般的工程项目中产生的数据数量都很庞大,若是....
的头像 广州虹科电子科技有限公司 发表于 10-20 09:13 466次 阅读
一种通过配方功能实现简单高效控制的方法解析

气体传感器BME688常见问题

在使用传感器的过程中,你是否有很多问号 ——在采样时需要强制空气进入BME688吗? ——由于数据是....
的头像 Bosch Sensortec 发表于 10-19 17:36 381次 阅读
气体传感器BME688常见问题

简述图像梯度的基本原理

当用均值滤波器降低图像噪声的时候,会带来图像模糊的副作用。我们当然希望看到的是清晰图像。那么,清晰图....
的头像 新机器视觉 发表于 10-19 16:22 209次 阅读
简述图像梯度的基本原理

紫光集团重整最新消息:已确认千亿债权规模

天眼查数据显示,紫光集团公司已经于近日正式开始重整,并已确定债权规模1081.81亿元。并且在未来集....
的头像 lhl545545 发表于 10-19 14:47 772次 阅读

华为刘康:出面向5.5G目标网络架构 以电信云原生为基础

[阿联酋,迪拜,2021年10月13日] 今日,第六届5G核心网峰会(5G Core Summit ....
的头像 华为云核心网 发表于 10-19 14:41 347次 阅读

一文了解Cortex-M中断向量表对齐原则

来源 | 痞子衡嵌入式 一、Cortex-M中断向量表对齐原则   中断向量表就是一个集中保存系统全....
的头像 strongerHuang 发表于 10-19 11:06 298次 阅读
一文了解Cortex-M中断向量表对齐原则

人工智能如何影响工业物联网

■ 或许这就是为什么在没有IIoT提供关键帮助的情况下,企业很难在工业4.0带来的大规模数字转型中能....
的头像 贸泽电子 发表于 10-19 10:31 1508次 阅读

雷诺汽车使用深度学习网络估计 NOx 排放量

雷诺汽车构建并训练了一个长短期记忆 (LSTM) 网络,该网络预测 NOx 水平的准确率达到了 85....
的头像 MATLAB 发表于 10-19 10:12 287次 阅读

技术和架构选择比以往更重要

在后疫情时代当企业开始尝试复兴和以全新的面貌示人,有一点变得显而易见:技术和架构选择比以往更重要。 ....
的头像 英特尔FPGA 发表于 10-19 09:56 245次 阅读

我国特高压交直流混联大电网正式运行

近年来,我国逐步形成特高压交直流混联大电网。可满足大容量直流和大规模新能源接入后提高电网仿真精度和效....
的头像 lhl545545 发表于 10-18 17:34 1095次 阅读

微信回应崩了 微信或将推出深度清理新功能

 今天上午微信大部分用户反映称微信图片打不开、已经无法收发图片、文件,目前微信官方已经对此做出回复称....
的头像 lhl545545 发表于 10-18 16:45 620次 阅读